G ++ -I опция для компиляции программы
-
05-07-2019 - |
Вопрос
Вот небольшая проблема, которую я не могу решить, например, новичок в Linux.
Теперь у меня есть программа main.cpp, которую нужно скомпилировать, есть
#include "Down.h"
в начале файла.
На самом деле этот заголовочный файл существует в другом каталоге, который находится по адресу <Код> ../../../ включить код> каталог. Кроме того, некоторые другие заголовочные файлы, необходимые для Down.h, также находятся в этом каталоге ../../../include.
Вот проблема, я компилирую main.cpp командой
g++ -I /../../../include main.cpp
Тем не менее, он дает много информации об ошибках, что означает, что это не правильно делать так.
Должен ли я также изменить объявление включения в этом?
#include "../../../include/DownConvert.h"
Можете ли вы оставить мне совет? Спасибо.
Изменить:
После использования g ++ -I ../../../include main.cpp
я получаю следующие ошибки:
$ g++ -I ../../../include main.cpp
In file included from ../../../include/DownConvert.h:98,
from main.cpp:92: ../../../include/ResizeParameters.h:4:22: error:
TypeDefs.h: No such file or directory
In file included from /usr/include/c++/4.4/bits/stl_algo.h:61,
from /usr/include/c++/4.4/algorithm:62,
from ../../../include/H2
Решение
g++ -I /../../../include main.cpp
Видите эту косую черту после -I
? Это абсолютный путь.
Измените его на относительный путь (как показано ниже), и он будет работать нормально.
g++ -I ../../../include main.cpp
Другие советы
g ++ -I ../../../include main.cpp
должен работать
Попробуйте использовать опцию -v:
g++ -v -I ../../../include main.cpp
И убедитесь, что в списке каталогов для поиска включаемых файлов есть ваша папка, и нет жалоб на то, что эта папка отсутствует. Если есть такие жалобы, исправьте путь, который вы указали после -I