我处于这样的情况,我不应该打扰现有的CMakeLists.txt,但是还是应该在我的构建中添加一些g系统包含目录.换句话说,我需要将-isystem / path / to / my / include添加到我的编译器标志中,但是当调用像cmake这样的东西时,可能会有一些像cmake .. -DCMAKE_CXX_FLAGS =“$CMAKE_CXX_FLAGS -isystem / path / to / my /包括”?有没有办法做到这一点?
解决方法
我有同样的问题.我找到了2个解决方案:
>以前答案中由sakra提出的那个,我即使用C标志设置环境变量:
export CXXFLAGS=-isystem\ /path/to/my/include cmake <path to my sources>
或者同样的事情,但环境变量只为这个cmake调用设置:
CXXFLAGS=-isystem\ /path/to/my/include cmake <path to my sources>
重要信息:在启动任何此窗体之前,必须清除构建目录(即清除cmake缓存).没有清理缓存,cmake将继续使用您以前运行的缓存CMAKE_CXX_FLAGS.
>直接在cmake字符串中设置CMAKE_CXX_FLAGS:
cmake -DCMAKE_CXX_FLAGS=-isystem\ /path/to/my/include <path to my sources>
我相信它可以通过更多的“native”方式完成,但是我没有找到变量负责cmake中的头文件的路径.