V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zxCoder
V2EX  ›  问与答

为啥 c/c++等就能编译成体积比较小的单个可执行文件,而像 go/c#等这种就算能编译成单个可执行文件,体积也比较大,好像加了类似运行环境之类的

  •  
  •   zxCoder · 2021-10-09 17:13:43 +08:00 · 836 次点击
    这是一个创建于 1171 天前的主题,其中的信息可能已经有所发展或是发生改变。
    dcty
        1
    dcty  
       2021-10-09 17:17:11 +08:00
    依赖库啥的
    AoEiuV020
        2
    AoEiuV020  
       2021-10-09 17:17:48 +08:00   ❤️ 1
    所以 c/c++要啥没啥,
    sujin190
        3
    sujin190  
       2021-10-09 17:18:44 +08:00
    c/c++等就能编译成体积比较小的单个可执行文件也仍然依赖一堆库的吧,go 编译出来的单个可执行文件就真的啥也不依赖了吧
    ch2
        4
    ch2  
       2021-10-09 17:26:42 +08:00
    c++要想达到一样的单文件能到处部署而且保证兼容性的效果,也得静态编译,体积也会爆炸
    之所以你编译出来的那个文件小,是因为你本机有动态链接库,别的机器上没有或者版本不兼容的,它直接撂挑子
    jworg
        5
    jworg  
       2021-10-09 17:38:50 +08:00
    前者可以用到系统 libc 等一系列玩意儿,后者自己实现了一堆东西
    secondwtq
        6
    secondwtq  
       2021-10-09 23:54:40 +08:00
    真不一定小,模板一 monomorphize 教你做人

    顺便可以看看这个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3071 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:28 · PVG 21:28 · LAX 05:28 · JFK 08:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.