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

2021-07-14 23:18:22 +08:00
 3dwelcome

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,见证奇迹

3263 次点击
所在节点    C++
11 条回复
levelworm
2021-07-14 23:21:59 +08:00
我有个问题。几年前用 VS2010 的时候,感觉 intellisense 速度很快。但是自从 VS2017 之后就觉得迟滞的很厉害,请问如何解决?
jones2000
2021-07-14 23:24:14 +08:00
古老的不是 vc6.0 嘛。
3dwelcome
2021-07-14 23:28:47 +08:00
@levelworm 不确定原因,等别的高手回答。
ysc3839
2021-07-14 23:31:01 +08:00
你这根本不是让旧版本的 MSVC 编译器支持新语法吧,而是让旧版的 Visual Studio IDE 使用 clang 编译器。
yorec
2021-07-14 23:31:19 +08:00
看标题的“最古老”,同样以为是 VC6.0
3dwelcome
2021-07-14 23:31:32 +08:00
@jones2000 那是骨灰吧。

我试验过 VC6 来兼容最新 CLANG,通过升级 VC7 的编译器(魔改),来支持链接和调试。

但是总有各种各样的小问题。毕竟是骨灰级元老,也就不强求了。该饮茶就饮茶,该退休就退休。
xy90321
2021-07-15 00:03:13 +08:00
标题是编译器,点进来发现是编辑器。
wudicgi
2021-07-15 00:14:12 +08:00
VS2017 和 VS2019 安装都毫无问题
wangxn
2021-07-15 00:35:17 +08:00
有没人以为是 Turbo C++
EAimTY
2021-07-15 01:17:59 +08:00
vs + clang 还不如用 vscode + clang 吧…
wdhwg001
2021-07-15 04:04:51 +08:00
backport vc6 我见过最妖的莫过于 miniblink 了,拆一整个 chromium 下来魔改到支持 vc6,就为了缩小编译体积

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/789579

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX