Компилятор не может найти .h файлы (блоки кода) - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь включить несколько библиотек в блоки кода, однако, когда я добавляю путь к файлам .h в каталог поиска (пример C: \ Qt \ 5.1.1 \ mingw48_32 \ include \ QtNetwork), он только кажется, идентифицируют те в основном файле, и я думаю, что это связано с тем, что в основном файле они включены как таковые (например) #include "qtcpsocket.h", тогда как в файле .h они включены как (например) #include <QtNetwork/qabstractsocket.h>.

В чем главное отличие от папки, в которой он находится? Почему это может не сработать? и что нужно сделать, чтобы изменить его?

еще одна вещь, я уверен, что файлы находятся в папке. Вот несколько фрагментов кода, если это поможет

расположение файла

ошибка

1 Ответ

0 голосов
/ 07 ноября 2018

Если ваш исходный код содержит, например,

#include <QtNetwork/qabstractsocket.h>

тогда вы запрашиваете препроцессор для поиска и включения файла с именем

QtNetwork/qabstractsocket.h

(или, QtNetwork\qabstractsocket.h, если вы используете Windows, как вы)

в одном из своих каталогов поиска.

А если вы указали каталоги поиска компилятора:

C:\Qt\5.5.1\mingw48_32\include\QtNetwork
C:\Qt\5.5.1\mingw48_32\include\QtCore

тогда препроцессор будет искать в первом каталоге:

C:\Qt\5.5.1\mingw48_32\include\QtNetwork\QtNetwork\qabstractsocket.h

которого не существует. И он будет искать во втором каталоге:

C:\Qt\5.5.1\mingw48_32\include\QtCore\QtNetwork\qabstractsocket.h

которого тоже не существует.

Обычным способом было бы указать каталог поиска компилятора:

C:\Qt\5.5.1\mingw48_32\include

и в своем коде напишите ваши #include <...> директивы, такие как:

#include <QtNetwork/...>
#include <QtCore/...>
...