我试图让CMake和Clang使用我的程序。我已将环境变量CC
和CXX
设置为:
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 ...
它编译得很完美。
非常感谢任何帮助。
答案 0 :(得分:-1)
您可以直接指定cpp编译器
cmake . -DCMAKE_CXX_COMPILER=/usr/bin/clang++