7

教你们如何用最古老的 VC 编译器,来支持最新的 C++语法。

 3 years ago
source link: https://www.v2ex.com/t/789579
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  C++

教你们如何用最古老的 VC 编译器,来支持最新的 C++语法。

  3dwelcome · 8 小时 24 分钟前 · 611 次点击

C++已经进化到了 std=2023 标准,能实装各种魔幻新技术。

然而最新的 VC++编译器,由于体积过大,只能在线安装。在线下载有些特殊 packages, 微软的官方地址还会过期,返回 404 (我都不敢相信!)

于是乎,用回了上古 VC, 2005/2008 之类的。在渣机器上,不论启动速度,定制化插件,还是编译后文件大小,都算令人满意。唯一遗憾的是,C++11 标准是从 VC2010 开始支持的,以前版本什么美妙新语法都不支持。但是(凡事总有个但是),经过 LLVM 开发小组多年的不懈努力,终于可以让老 VC 用上最新版本的 CLANG,并且还可以调试。

具体方法是:

1,下载最新版本 clang 和 libc 库( https://github.com/mstorsjo/llvm-mingw/releases

2,工程里写一段 C++23 的魔法代码,然后把 CPP 编译属性改成 Custom Build

3,用 c:/llvm-mingw/bin/i686-w64-mingw32-clang++.exe -std=c++2b -msse4a -mavx 来编译成 OBJ

4,编译选项里用-g -gcodeview 生成上古 VC 能识别的调试信息(这点很重要,能单步调试,C++语言才有灵魂)

5,见证奇迹


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK