8

我尝试使用以下 CMake 配置构建 Google Test:

$ CMAKE_CXX_COMPILER="clang++" CMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++ -U__STRICT_ANSI__" cmake ../source

构建显示 CMake 选择了正确的编译器,但我的编译器标志没有通过:

$ VERBOSE=1 make
...
/Users/jfreeman/local/bin/clang++    -I/Users/jfreeman/work/googletest/source/include -I/Users/jfreeman/work/googletest/source      -DGTEST_HAS_PTHREAD=1   -o CMakeFiles/gtest.dir/src/gtest-all.cc.o -c /Users/jfreeman/work/googletest/source/src/gtest-all.cc
...
/Users/jfreeman/local/bin/clang++    -I/Users/jfreeman/work/googletest/source/include -I/Users/jfreeman/work/googletest/source      -DGTEST_HAS_PTHREAD=1   -o CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -c /Users/jfreeman/work/googletest/source/src/gtest_main.cc

最终目标是我希望使用 Clang 和 libc++ 构建的项目能够使用 Google Test 构建测试。这意味着我也需要使用 libc++ 构建的 Google Test。

4

1 回答 1

12

在 CMake 的命令行中使用变量有时需要 -D(用于定义)标志。

    $ cmake -DCMAKE_CXX_COMPILER="clang++" -DCMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++ -U__STRICT_ANSI__"  ../source
于 2012-11-02T17:07:38.567 回答