2012-05-15 2 views
1

Я компилирую свой проект, используя g ++ и файл jamroot (jamroot.jam). Я не знаю, почему он не знает мои файлы, даже если он содержит правильный каталог.компилятор не знает мой файл include

Вот результат:

"g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -fPIC -DLINUX \ 
    -I"/home/oumaya/docs/UT_Cpp_Test/main/inc" \ 
    -I"/home/oumaya/docs/UT_Cpp_Test/main/inc/include/cppunit" \ 
    -I"/home/oumaya/docs/UT_Cpp_Test/main/inc/include/cppunit/ui/qt" \ 
    -I"/usr/share/boost" -c -o "bin/build/gcc-4.6/debug/src/main.o" "src/main.cpp" 

In file included from src/main.cpp:6:0: 
/home/oumaya/docs/UT_Cpp_Test/main/inc/UT_Instrument_Test.hpp:7:45: fatal error: 
    cppunit/extensions/HelperMacros.h : No such file or directory 

ответ

2

Сравнить:

Ваша команда -

-I"/home/oumaya/docs/UT_Cpp_Test/main/inc/include/cppunit" 

Сообщение об ошибке:

fatal error: cppunit/extensions/HelperMacros.h : No such file or directory 

То есть, «включить корень» ожидается в /home/oumaya/docs/UT_Cpp_Test/main/inc/include, а не в подкаталоге «cppunit» (что, очевидно, указано в #include директива).

В противном случае ваше заявление #include неверно, и не должно быть cppunit/ перед extensions/HelperMacros.h.

+0

спасибо всем за ответы это действительно яснее, он работает – Oumaya

2

У вас не хватает одного:

-I/home/oumaya/docs/UT_Cpp_Test/main/inc/include/ 

Причина заключается в том, что вы включаете, как это:

#include "cppunit/extensions/HelperMacros.h" 

и полный путь

/home/oumaya/docs/UT_Cpp_Test/main/inc/include/cppunit/extensions/HelperMacros.h 

поэтому вы должны сказать, скомпилированный относительный путь к cppunit/extensions/HelperMacros.h

1

Он просто не может найти файл. Вы пытаетесь включить cppunit/extensions/HelperMacros.h, поэтому пройдите через все -I включите пути в свой вывод сборки и посмотрите, соединяются ли они вместе с допустимым путем к этому файлу. Они не будут, поскольку вам не хватает каталога.

Следующий шаг должен пройти через установку CppUnit и найти файл:

find <cppunit root> -name HelperMacros.h 

Когда вы найдете тот, который заканчивается ваш cppunit/extensions/HelperMacros.h включают, стрип, что откусил кончик и использовать первую часть пути как дополнительный -I включить путь в команду компиляции.

2

Вы указав [...]inc/include/cppunit путь для входных файлов, но относятся к заголовку, как cunit/extensions/HelperMacros.h Это означает, что компилятор ожидает путь относительно [...]inc/include/cppunit и заканчивается [...]inc/include/cppunit/cunit/extensions/HelperMacros.h. Вам нужно только указать [...]inc/include для включаемых каталогов (или изменить путь заголовка к extensions/HelperMacros.h)

0

При запуске Ubuntu я обнаружил, вы можете просто установить правильный материал с

Для CppUnit/расширения/HelperMacros.h или CppUnit/BriefTestProgressListener.h:

sudo apt-get install libcppunit-dev 
Смежные вопросы