CMU 15-445 环境配置问题记录

本文详细描述了如何在Ubuntu18.04环境下安装和配置clang-14编译器,解决cmake提示非Clang-14版本的问题,以及处理找不到-lstdc++库和头文件错误的步骤。适合学习cmu15445课程的同学参考。
摘要由CSDN通过智能技术生成

配置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课程的同学就好啦,祝大家学习顺利!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值