我最近安装了libechonest及其所有依赖项,但要包含其头文件(在/usr/local/include/echonest/
中我必须指定整个路径,即#include "/usr/local/include/echonest/Artist.h"
而不是#include <Artist.h>
1}}:
alexcannon$ gcc -g -o geoEchoNest geoEchoNest.c -lechonest
geoEchoNest.c:6:10: fatal error: 'Artist.h' file not found
#include "Artist.h"
这是为什么?根据GCC文档,默认情况下应该查看/usr/local/include
:
GCC在几个不同的地方寻找标题。在普通的Unix系统上,如果你没有&gt;另外指示它,它将在#include中查找请求的头文件:
/usr/local/include libdir/gcc/target/version/include /usr/target/include /usr/include
我该如何解决?我对其他库有同样的问题,例如我必须#include "/usr/local/include/QtCore/QDebug"
代替include <QDebug>
,所以这不仅仅是一个最棘手的问题。
/usr/local/include
的权限为drwxrwxr-x
。这是我的gcc信息:
alexcannon$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx- include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.76) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin12.5.0
Thread model: posix
我搜索并发现了许多类似的#include
GCC问题,但唯一一个专门处理在/usr/local/include
was specific to XCode中查找文件的问题。
显然请告诉我您是否需要更多信息,并且一如既往地感谢您的帮助。
答案 0 :(得分:2)
不会递归搜索包含路径,请尝试此操作。
#include <echonest/Artist.h>