不安装VS配置clang的方法

先决条件

首先确保:1、已经正确安装clang,并且clang的bin文件夹已经加入path环境变量中(我的是clang 8.0.1);2、已经正确安装mingw,并且mingw的bin文件夹已经加入path环境变量中(我的是mingw64 8.1.0);3、已经正确安装codeblocks

第一步:观察clang的编译现象

我们用命令行来尝试。首先写一个简单的helloworld,文件名为main.cpp。

#include <stdio.h>

int main(int argc, char* argv[]) {
    printf("Hello World!\n");
    return 0;
}

在命令行下执行:

clang++ main.cpp -o main.exe

发现下列报错:

在这里插入图片描述
其实,查看clang的安装目录就可见,clang仅仅是个编译器外壳,并没有include标准库。难怪他找不到stdio.h。

第二步:修改target编译选项

经过不懈Google,终于在stack overflow上找到了答案。

命令行下查看:clang++ -v 和 g++ -v

在这里插入图片描述
target并不相同,g++的target是mingw,但clang的target是msvc(也就是microsoft visual c++)。

因此,我们的办法就是编译时手动设置target选项为mingw:

特别注意:如果你的mingw是32位,则target设置为mingw32;64位则设置为x86_64-w64-mingw32。具体是哪一个,可以通过g++ -v来查看,但无论如何必须保证clang的target与g++保持完全一致!!

根据昨天一位同学反映的问题,codeblocks自带的mingw32和clang不兼容,因为clang是64位的。所以,大家最好单独安装mingw64!并把其下的bin目录加入path中!mingw64的8.1.0版本在这里:链接:https://pan.baidu.com/s/1thgOjU-zIIYOF2Gq-8_ueg,提取码:cerh,无需安装,直接解压(解压后大小约460MB),然后添加path变量即可!另外,如果之前在path中添加过mingw32的bin目录,一定要记住删除!

clang++ --target=x86_64-w64-mingw32 main.cpp -o main.exe

这次编译成功了:

在这里插入图片描述

第三步:修改codeblocks编译器设置

每次都命令行编译,多麻烦。所以,我们在codeblocks中集成一下。

菜单栏settings–compiler:

在这里插入图片描述
选择编译器为LLVM clang。然后,我们要给编译器加上–target这个选项。

在这里插入图片描述
右击任意一个选项,弹出菜单中选择“新标记”。

在这里插入图片描述
把这个选项命名为target设置。然后,把编译器选项和连接器选项都加上–target=x86_64-w64-mingw32。单击确定。

一定要记住勾选这个新添加的选项。

在这里插入图片描述然后,设置“可执行工具链”:

在这里插入图片描述
单击确定。

然后创建新工程试验一下。注意在这一步,必须选择LLVM clang编译器:

在这里插入图片描述
创建后,编译运行:

在这里插入图片描述
完美解决!

美中不足

我们在修改编译器之后,发现,编辑代码时没有任何代码提示。这就是刚才所说的,clang没有include标准库导致的,所以,如果用cb直接配置的话,就忍忍吧!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值