我正在尝试在 OS X 上使用 clang++ 和 CXX_FLAGS“-Wall -stdlib=libc++ -std=c++11”编译一个 c++ 项目。该项目是一个 CMAKE 项目,需要包含 cln 和 ginac。但是,当我给出这样的包含语句时,编译器找不到相应的头文件:
#include <cln/cln.h>
或者
#include <ginac/ginac.h>
尽管这两个库都安装在 /usr/local/lib 中并且它们的包含目录(/usr/local/include/cln 和 /usr/local/include/ginac)存在。我试过了
set(CMAKE_INCLUDE_PATH /usr/local/include/cln:/usr/local/include/ginac )
但它没有显示任何效果,错误消息保持不变:
fatal error: 'ginac/ginac.h' file not found
#include <ginac/ginac.h>
^
更新:
我设法为详细添加了编译器标志,这向我表明,clang 搜索所需标头的路径是错误的,因此问题似乎类似于如何更改这些路径的问题:
#include "..." search starts here:
#include <...> search starts here:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.0/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks (framework directory)
End of search list.
而所需的标头仍在 /usr/local/include 中。
更新 2 添加 CXX_FLAG
-I/usr/local/include
解决了问题 - 我在哪里可以将其全局设置为默认值?