zxCoder
V2EX  ›  问与答

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

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

    顺便可以看看这个
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2939 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 11:24 · PVG 19:24 · LAX 03:24 · JFK 06:24
    ♥ Do have faith in what you're doing.