关于在 Ubuntu 中使用 clang 时出现 fatal error: ‘iostream‘ file not found

 本人使用Linux Mint,基于的是Ubuntu 22.04 。

我用下面的命令安装了clang

sudo apt install clang

但是发现编译会有问题。比如在使用 clang++ 编译hello world程序时,会出现:fatal error: 'iostream' file not found 。执行clang -v,会发现这样的输出:

************:~$ clang -v
Ubuntu clang version 14.0.0-1ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
Candidate multilib: .;@m64
Selected multilib: .;@m64

解释一下,clang 会有这样一个行为:如果电脑安装了有gcc,clang会默认使用gcc最新版本的库。

其中 Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12 表明,他在找到了12版本的库了。此时我的g++-12尚未安装,g++版本仍为包管理器的默认版本的g++-11。于是此文件夹中就没用相应的c++库。为什么会有12这个文件夹呢?因为我之前安装了gcc-12。这个12文件夹只有gcc-12相关文件。因此我的首要目标就是,安装g++-12。

sudo apt install g++-12

后面就可以正常运行了。所以,一定要保证gcc和g++的版本一致。不能看默认版本,应该看最新版本。使用gcc-xx -v或者g++-xx -v来查看是不是安装了最新的版本。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值