使用clang代替clang ++

时间:2015-08-06 21:06:46

标签: c++ cmake clang

我试图让CMake和Clang使用我的程序。我已将环境变量CCCXX设置为:

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++

但是当我运行cmake .make时,我收到链接器错误,因为它使用/usr/bin/clang而不是/usr/bin/clang++,因此无法看到C ++标准库。运行make VERBOSE=1后,这就是我得到的:

/usr/bin/clang   -std=c++11 -Wall -O3   CMakeFiles/Saruman.dir/Board.cpp.o
CMakeFiles/Saruman.dir/CaptureList.cpp.o CMakeFiles/Saruman.dir/Evaluation.cpp.o
CMakeFiles/Saruman.dir/main.cpp.o CMakeFiles/Saruman.dir/MoveList.cpp.o
CMakeFiles/Saruman.dir/Search.cpp.o CMakeFiles/Saruman.dir/TranspositionTables.cpp.o 
CMakeFiles/Saruman.dir/UCI.cpp.o  -o Saruman -rdynamic -lpthread 

CMakeFiles/Saruman.dir/Board.cpp.o: In function Board::Board(std::string)':
/home/terry/code/chess/engine/Source/Board.cpp:(.text+0x100): undefined reference to
`std::string::compare(char const*) const'

它显然是在调用/usr/bin/clang而不是/usr/bin/clang++。我手动运行时

clang++ -std=c++11 -Wall -O3 ...

它编译得很完美。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

您可以直接指定cpp编译器

cmake . -DCMAKE_CXX_COMPILER=/usr/bin/clang++