Visual Studio 2017 проблема компиляции кода C ++, тогда как код компилируется в Linux - PullRequest
0 голосов
/ 19 мая 2019

Я запрограммировал свой код в Linux, и он скомпилирован на платформе Linux, недавно я импортировал код в Visual Studio 2017 Enterprise в рамках кроссплатформенного проекта. мой удаленный компоновщик - это машина, на которой был скомпилирован код. но при попытке построить проект с помощью VS он не смог найти некоторые заголовочные файлы, такие как или или т. д., и сборка не удалась.

Я обнаружил, что пути VS для включаемых файлов (VC \ Linux \ include \ usr \ include \ c ++ \ 5 и т. Д.) Не содержат отсутствующих заголовочных файлов. Но сообщество 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" Hardware-Check

и т.д.

1 Ответ

0 голосов
/ 19 мая 2019

unistd.h, fcntl.h и т. Д. Являются заголовочными файлами в стандарте Unix. Его нельзя найти в ОС Windows, если вы хотите скомпилировать код на обеих платформах, возможно, вы можете написать свой код следующим образом:

#ifdef _WIN32
//code for windows
#elif defined __linux__
//code for linux
#endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...