配置C++编译环境
clang-14安装和配置
执行如下命令过程中遇到了问题
$ mkdir build
$ cd build
$ cmake ..
$ make -j8
执行cmake ..后,提示编译器非Clang-14,提示信息如下:
We recommend that you use clang-14 for this bootcamp. You're using GNU 11.0.4 which is not clang.
解决方案
1.安装clang-14,访问llvm的GitHub主页,下载安装包。
具体步骤参考的是这篇博文 【ubuntu-18.04 安装clang 14 && cmu15445环境搭建的坑】的方法二。建议将clang的目录永久添加到环境变量中,一劳永逸!
2.配置CMakeLists.txt
将clang的路径添加到CMakeLists.txt中(注:这两条命令应该放在文件的开始位置(cmake_minimum_required命令之下,其他命令之上),否则可能无效。来源:cmake:选择编译器及设置编译器选项)
set(CMAKE_C_COMPILER "/usr/local/llvm/bin/clang")
set(CMAKE_CXX_COMPILER "/usr/local/llvm/bin/clang++")
ps: 因为我的clang-14是安装在/usr/local下,并且目录重命名为llvm,所以配置的路径是/usr/local/llvm。这里根据实际安装情况变化。
3./usr/bin/ld: 找不到 -lstdc++:
配置完CMakeLists.txt后,执行cmake ..没有想象中的顺利,这时报了一个这样的错
/usr/bin/ld: 找不到 -lstdc++:
首先确认本地是否有lstdc++库,观察到本地确实有
接下来将文件复制到/usr/lib目录下,并建立软连接
locate libstdc++.so
cd /usr/lib/x86_64-linux-gnu
sudo cp libstdc++.so.6 /usr/lib
sudo cp libstdc++.so.6。0.30 /usr/lib
cd /usr/lib
sudo ln -sf libstdc++.so.6.0.30 libstdc++.so.6
sudo ln -sf libstdc++.so.6 libstdc++.so
ll libstdc++.so*
之后再执行cmake ..就没有问题啦!
clang++编译找不到头文件报错问题解决(fatal error: 'iostream' file not found)
解决方案
执行make -j8过程中,找不到头文件报错。
主要参考的是这篇博文关于在 Ubuntu 中使用 clang 时出现 fatal error: ‘iostream‘ file not found
下载了gcc++-12之后我的问题就解决了!
结语
如果可以帮助到同是学习cmu15-445课程的同学就好啦,祝大家学习顺利!