首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用clang代替clang++的CMake

使用clang代替clang++的CMake
EN

Stack Overflow用户
提问于 2015-08-07 05:06:46
回答 1查看 869关注 0票数 3

我正在尝试让CMake和Clang使用我的程序。我已经将环境变量CCCXX设置如下:

代码语言:javascript
复制
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++

但是当我运行cmake .make时,我得到了一个链接器错误,因为它使用的是/usr/bin/clang而不是/usr/bin/clang++,因此看不到C++标准库。运行make VERBOSE=1后,我得到的结果如下:

代码语言:javascript
复制
/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++。当我手动运行

代码语言:javascript
复制
clang++ -std=c++11 -Wall -O3 ...

它可以完美地编译。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-08-07 05:10:42

可以将cpp编译器直接指定为cmake。

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31865801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档