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 ..

好的,现在让我们添加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

但是make失败了,我没有看到-I..规范在cc命令行。

[ 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

我也试过给出一个绝对路径,但它对我不起作用。

您的文件扩展名是.c,您应该使用CMAKE_C_FLAGS

在大多数情况下,您应该在CMakeLists.txt中指定所需的搜索路径:

include_directories(..)

相关内容

  • 没有找到相关文章

最新更新