Visual Studio 2017在编译C ++代码时出现问题,而该代码在Linux中编译

时间:2019-05-19 10:04:45

标签: c++ visual-studio cross-platform

我用Linux编写了代码,并在Linux平台上进行了编译,最近,我将代码导入了Visual Studio 2017 Enterprise中的跨平台项目。我的远程生成器是在其上编译过代码的机器。但是当尝试通过VS构建项目时,它找不到某些头文件(例如or或etc),并且构建会失败。

我发现包含文件(VC \ Linux \ include \ usr \ include \ c ++ \ 5等)的VS路径不包含缺少的头文件。但是Microsoft社区表示,这种缺失只会导致IntelliSense发生故障,并且VS必须在远程生成器上遵守代码!

#include <errno.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>
.
.
.
int main(int argc, char **argv)
{   
     char device_string[1000];
     char * reordered;
     BIO *bio, * b64;
     BUF_MEM * b64buff;
...
}
  

错误(活动)E1696无法打开源文件“ unistd.h”硬件检查

1 个答案:

答案 0 :(得分:-1)

unistd.h,fcntl.h等是Unix标准的头文件。在Windows OS中找不到它,如果要在两个平台上编译代码,也许可以这样编写代码:

#ifdef _WIN32
//code for windows
#elif defined __linux__
//code for linux
#endif