1

我正在使用 g++ 和 jamroot 文件 (jamroot.jam) 编译我的项目。我不知道为什么它不知道我的文件,即使它包含正确的目录。

这是输出:

"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  
4

5 回答 5

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

于 2012-05-15T12:01:46.187 回答
2

您正在[...]inc/include/cppunit为输入文件指定路径,但将标头称为这cunit/extensions/HelperMacros.h 意味着编译器期望路径相对于. 您只需要指定包含目录(或将标头路径更改为)[...]inc/include/cppunit[...]inc/include/cppunit/cunit/extensions/HelperMacros.h[...]inc/includeextensions/HelperMacros.h

于 2012-05-15T12:02:53.420 回答
2

比较:

你的命令 -

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

错误信息:

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

即,“包含根目录”应位于,而不是“cppunit”子目录(指令/home/oumaya/docs/UT_Cpp_Test/main/inc/include中显然已说明)。#include

或者,您的#include陈述是错误的,不应该cppunit/extensions/HelperMacros.h.

于 2012-05-15T12:04:31.690 回答
1

它根本找不到文件。您正在尝试包含cppunit/extensions/HelperMacros.h,因此请检查-I构建输出中的所有包含路径,看看它们是否连接到该文件的有效路径。他们不会因为您缺少目录。

下一步是完成 cppunit 安装并找到您的文件:

find <cppunit root> -name HelperMacros.h

当你找到一个以你的包含结尾的,去掉那个位,并在你的编译命令cppunit/extensions/HelperMacros.h中使用路径的第一部分作为额外的包含路径。-I

于 2012-05-15T12:02:18.870 回答
1

运行 Ubuntu 时,我发现你可以简单地安装正确的东西

对于 cppunit/extensions/HelperMacros.h 或 cppunit/BriefTestProgressListener.h:

sudo apt-get install libcppunit-dev
于 2014-12-18T02:40:37.443 回答