0
我有一个非常简单的设置。两个独立目录中的两个文件。cmake似乎没有拿起我的-DCMAKE_CXX_FLAGS
mkdir a
touch a/a.h
mkdir b
echo '#include <a/a.h>' > b/b.c
编译的作品,当我指定一个头路
cd b
gcc -c -I.. b.c
cd ..
OK,现在让我们cmake的添加到图片。为了我的目的,我需要通过命令行指定标题搜索路径。考虑CMakeLists.txt只读。
cat<<EOF > b/CMakeLists.txt
cmake_minimum_required (VERSION 3.0)
project (b)
add_library(b
b.c
)
EOF
mkdir b/build
cd b/build
cmake -DCMAKE_CXX_FLAGS=-I.. ..
make VERBOSE=1
但要失败,我没有看到在cc
命令行-I ..规范。
[ 50%] Building C object CMakeFiles/b.dir/b.c.o
/Applications/Xcode.app/Contents/Developer/Toolchains /XcodeDefault.xctoolchain/usr/bin/cc -o CMakeFiles/b.dir/b.c.o -c /tmp/b/b.c
/tmp/b/b.c:1:10: fatal error: 'a/a.h' file not found
我试过给绝对路径,但它只是不适合我。
权。我很困惑,因为我认为CMAKE_CXX_FLAGS也一直用于.m文件(然后我认为CXX意味着任何C,而不是它)。 视情况而定,至少在OS X上,有时cmake使用C++ for .m文件,有时使用cc。然后在一种情况下使用CMAKE_CXX_FLAGS并在另一种情况下使用CMAKE_C_FLAGS。 – user3093235