【发布时间】:2015-08-06 21:06:46
【问题描述】:
我正在尝试让 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 ...
编译完美。
任何帮助将不胜感激。
【问题讨论】:
-
@BaummitAugen 不,我认为是just for C。无论哪种方式,我都尝试将 CC 更改为
/usr/bin/clang++,但没有成功。 -
这可能只是切线相关,但您可能想尝试我提出的类似问题的答案之一,看看它们是否有效。 stackoverflow.com/questions/28728685/…