G ++ -I опция для компиляции программы - PullRequest
4 голосов
/ 26 ноября 2009

Вот небольшая проблема, которую я не могу решить, например, новичок в Linux.

Теперь у меня есть программа main.cpp, которую нужно скомпилировать, есть

#include "Down.h"

в начале файла.

На самом деле этот заголовочный файл существует в другом каталоге, который находится по адресу ../../../include каталог. Кроме того, некоторые другие заголовочные файлы, необходимые для Down.h, также находятся в этом каталоге ../../../include.

Вот проблема, я компилирую main.cpp с помощью команды

g++ -I /../../../include main.cpp

Тем не менее, он дает много информации об ошибке, что означает, что это неправильно, как это делается.

Должен ли я также изменить объявление включения в этом?

#include "../../../include/DownConvert.h"

Можете ли вы оставить мне совет? Спасибо.

Edit:

После использования 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 

Ответы [ 3 ]

7 голосов
/ 26 ноября 2009
g++ -I /../../../include main.cpp

Видите лидирующую косую черту после -I? Это абсолютный путь.
Измените его на относительный путь (как показано ниже), и он будет работать нормально.

g++ -I ../../../include main.cpp
0 голосов
/ 26 ноября 2009

Попробуйте использовать опцию -v:

g++ -v -I ../../../include main.cpp

И убедитесь, что в списке каталогов для поиска включаемых файлов есть ваша папка и нет жалоб на то, что эта папка отсутствует. Если есть такие жалобы, исправьте путь, который вы указали после -I

0 голосов
/ 26 ноября 2009

g ++ -I ../../../include main.cpp

должно работать

...