zxCoder
V2EX  ›  问与答

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

  •  
  •   zxCoder · Oct 9, 2021 · 1267 views
    This topic created in 1718 days ago, the information mentioned may be changed or developed.
    dcty
        1
    dcty  
       Oct 9, 2021
    依赖库啥的
    AoEiuV020
        2
    AoEiuV020  
       Oct 9, 2021   ❤️ 1
    所以 c/c++要啥没啥,
    sujin190
        3
    sujin190  
       Oct 9, 2021
    c/c++等就能编译成体积比较小的单个可执行文件也仍然依赖一堆库的吧,go 编译出来的单个可执行文件就真的啥也不依赖了吧
    ch2
        4
    ch2  
       Oct 9, 2021
    c++要想达到一样的单文件能到处部署而且保证兼容性的效果,也得静态编译,体积也会爆炸
    之所以你编译出来的那个文件小,是因为你本机有动态链接库,别的机器上没有或者版本不兼容的,它直接撂挑子
    jworg
        5
    jworg  
       Oct 9, 2021
    前者可以用到系统 libc 等一系列玩意儿,后者自己实现了一堆东西
    secondwtq
        6
    secondwtq  
       Oct 9, 2021
    真不一定小,模板一 monomorphize 教你做人

    顺便可以看看这个
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5546 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 01:39 · PVG 09:39 · LAX 18:39 · JFK 21:39
    ♥ Do have faith in what you're doing.