我用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”硬件检查
等
答案 0 :(得分:-1)
unistd.h,fcntl.h等是Unix标准的头文件。在Windows OS中找不到它,如果要在两个平台上编译代码,也许可以这样编写代码:>
#ifdef _WIN32
//code for windows
#elif defined __linux__
//code for linux
#endif