教你们如何用最古老的 VC 编译器,来支持最新的 C++语法。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
3dwelcome
V2EX    C++

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

  •  
  •   3dwelcome 2021-07-14 23:18:22 +08:00 3715 次点击
    这是一个创建于 1597 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    于是乎,用回了上古 VC, 2005/2008 之类的。在渣机器上,不论启动速度,定制化插件,还是编译后文件大小,都算令人满意。唯一遗憾的是,C++11 标准是从 V2010 开始支持的,以前版本什么美妙新语法都不支持。但是(凡事总有个但是),经过 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,见证奇迹

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

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

    但是总有各种各样的小问题。毕竟是骨灰级元老,也就不强求了。该饮茶就饮茶,该退休就退休。
    3dwelcome
    xy90321
        7
    xy90321  
       2021-07-15 00:03:13 +08:00   3
    标题是编译器,点进来发现是编辑器。
    wudicgi
        8
    wudicgi  
       2021-07-15 00:14:12 +08:00
    VS2017 和 VS2019 安装都毫无问题
    wangxn
        9
    wangxn  
       2021-07-15 00:35:17 +08:00
    有没人以为是 Turbo C++
    EAimTY
        10
    EAimTY  
       2021-07-15 01:17:59 +08:00 via Android
    vs + clang 还不如用 vscode + clang 吧…
    wdhwg001
        11
    wdhwg001  
       2021-07-15 04:04:51 +08:00 via iPhone
    backport vc6 我见过最妖的莫过于 miniblink 了,拆一整个 chromium 下来魔改到支持 vc6,就为了缩小编译体积
    关于     帮助文档     自助推广系统     博客     API   &nsp; FAQ     Solana     894 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 20:26 PVG 04:26 LAX 12:26 JFK 15:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86