g cc невозможно найти заголовочные файлы «windows .h, winsock2.h и ws2tcpip.h» даже после установки пакета mingw на Linux - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь создать программу на ac / c ++, используя winsock2.h, windows .h и ws2tcpip.h в Linux. Но я получаю следующие сообщения об ошибках:

не удается открыть исходный файл "winsock2.h" C / C ++ (1696)

Аналогично для windows .h

невозможно открыть исходный файл "windows .h" C / C ++ (1696)

Я уже установил Mingw в своей системе с помощью этой команды

mingw-w64-common mingw-w64-i686-dev mingw-w64-tools mingw-w64-x86-64-dev

Моя программа

#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h> 
#include <stdio.h> 
#pragma comment(lib, "Ws2_32.lib") 

 int main() { return 0; }

VS C ver - 1.45.1

OS - Debian

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Проблемы, похоже, связаны с "не обнаружением файлов заголовков". Если с g cc включить путь (или каталог) настраиваемых заголовков, вы сделаете что-то, как показано ниже.

ПРИМЕЧАНИЕ. Я не собираюсь использовать предложенные mingw заголовки с gcc; это просто для демонстрационных целей.

dpkg -L mingw-w64-common дает такой результат в моей системе.

/usr/share/mingw-w64/include/windows.h
/usr/share/mingw-w64/include/winsock2.h
/usr/share/mingw-w64/include/ws2tcpip.h

gcc -v test.c дает такой вывод в моей системе

#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/9/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/9/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include

Таким образом, очевидно, что заголовки или нет в пути поиска по умолчанию. В этом конкретном случае вам нужно скомпилировать с gcc -I/usr/share/mingw-w64/include. Вы предоставляете аналогичный вариант для компилятора вашей инструментальной цепочки. Но тогда вам, возможно, придется разобраться с ошибками связывания в зависимости от того, какие библиотеки использует ваш код.

0 голосов
/ 29 мая 2020

Формат сообщения cannot open source file "winsock2.h"C/C++(1696) не похож на то, что сказал бы G CC. Возможно ли, что при установке MinGW-w64 вы не используете его компилятор G CC? Для работы MinGW-w64 вам необходимо актуализировать его набор инструментов (компилятор, компоновщик).

...