我正在尝试让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 ...它可以完美地编译。
任何帮助都将不胜感激。
发布于 2015-08-07 05:10:42
可以将cpp编译器直接指定为cmake。
cmake . -DCMAKE_CXX_COMPILER=/usr/bin/clang++
https://stackoverflow.com/questions/31865801
复制相似问题