使用clang代替clang++
CMake using clang instead of clang++
我正试图让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 ...
它可以完美地编译。
可以直接指定要生成的cpp编译器
cmake . -DCMAKE_CXX_COMPILER=/usr/bin/clang++
相关文章:
- 我应该使用什么来代替void作为变体中的替代类型之一
- 奇怪的结构&GCC&clang(void*返回类型)
- 数据成员SFINAE的C++17测试:gcc vs clang
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 我可以将一个用clang c++11编译的对象与另一个用c++17编译的对象链接起来吗
- Clang bug?使用指针作为模板参数
- clang整洁10忽略了我的NOLINT命令
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 在clang++预处理器中确定gcc工具链版本
- 为什么 Clang 不允许"and"作为函数名称?
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- clang格式:宏的缩进
- CLANG 编译器 说:变量"PTR"可能未初始化
- clang格式:禁用排序包含
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- gcc和clang在表达式是否为常量求值的问题上存在分歧
- 循环展开 - G++ 与 Clang++
- 如何使用Clang/GCC在Mac上为C/C++设置VSCode
- 使用clang代替clang++