无法使用Google Test,Clang和libc ++构建测试

Joh*_*man 8 c++ cmake clang googletest libc++

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

$ CMAKE_CXX_COMPILER="clang++" CMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++ -U__STRICT_ANSI__" cmake ../source
Run Code Online (Sandbox Code Playgroud)

构建显示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
Run Code Online (Sandbox Code Playgroud)

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

kat*_*uff 11

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

    $ cmake -DCMAKE_CXX_COMPILER="clang++" -DCMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++ -U__STRICT_ANSI__"  ../source
Run Code Online (Sandbox Code Playgroud)

  • 我不得不添加`-DCMAKE_CXX_FLAGS ="... -DGTEST_USE_OWN_TR1_TUPLE = 1"`以使其工作. (2认同)