我已将config4cpp解压缩到lib / config4cpp下的projects目录中。我在lib / config4cpp中运行了make文件。
我在项目cpp文件的顶部添加了这个包含
#include "lib/config4cpp/include/config4cpp/Configuration.h"
我的make文件中有这一行
g++ -L./lib -c queue.cpp -lcurl -lconfig4cpp
我收到此错误
g++ -c -o queue.o queue.cpp
In file included from queue.cpp:4:0:
lib/config4cpp/include/config4cpp/Configuration.h:35:34: fatal error: config4cpp/namespace.h: No such file or directory
#include <config4cpp/namespace.h>
^
compilation terminated.
<builtin>: recipe for target 'queue.o' failed
make: *** [queue.o] Error 1
所以看起来它找到了Configuration.h文件,但是找不到其中一个标题。
我也试过
g++ -I"lib/config4cpp/include/" -c queue.cpp
并将标题包括更改为
#include <config4cpp/Configuration.h>
但是我在找不到namespace.h文件时遇到同样的错误
这似乎与从我的make文件中运行有关。
output: main.o queue.o
g++ main.o queue.o -o"bin/behavior"
main.o: main.cpp
g++ -c main.cpp
message.o: queue.cpp
g++ -c queue.cpp -L"./lib" -lconfig4cpp -I"./lib/config4cpp/include"
clean:
rm *.o bin
答案 0 :(得分:1)
从我可以看到你没有给g ++的-I参数,所以发生以下情况:
您提供要使用的标头的绝对路径。此标题现在位于&#34;位于&#34;在你的本地文件夹(你的.cpp文件所在的文件夹)里面。当它试图包含&#34; config4cpp / namespace.h&#34;它在当前文件夹中查找。但是你没有&#34; config4cpp / namespace.h&#34;本地文件。
您需要做的是添加:
-I"lib/config4cpp/include/"
作为g ++的参数,具有以下文件夹结构:
$BASE_DIR
|-- config_test.cpp
|
|--lib
| |-- config4cpp.a
| |
| |-- config4cpp
| | |-- include
| | | |-- config4cpp
| | | | |-- Configuration.h
| | | | |-- namespace.h
| | | | |-- ConfigurationException.h