您现在的位置是:网站首页> 新闻快讯> 软件使用 新闻快讯
ubuntu10 04(ubuntu13.04)
小玉2023-07-05【软件使用】
229人已围观
简介golangcgo静态编译通常来说,我们go编译出来的可执行文件,是一个动态链接的可执行文件,依赖gcc,libc等一些动态lib。这样如果你跨

ubuntu10 04(ubuntu13.04)
最后更新:2023-07-05 03:48:28
推荐指数:
golangcgo静态编译通常来说,我们go编译出来的可执行文件,是一个动态链接的可执行文件,依赖gcc,libc等一些动态lib。这样如果你跨平台去用,比如ubuntu22.04编译的可执行文件,到debian10上就不能运行了,因为动态lib都不一样。版本不匹配,不兼容。我们可以通过静态编译的方法,来把golang的应用,编译成完全静态的可执行文件。当然了,文件体积会大一些,但是更通用一些。丢到任何一台linux,只要认,就能运行。我们先装一下musl类库的工具apt-getupdateapt-getinstall-ymuslmusl-devmusl-tools然后开始编译CGO_ENABLED=1CC=musl-gccgobuild--ldflags'-linkmodeexternal-extldflags"-static"'这样编译出来的静态文件,就可以放到任何linux运行。如何看一个应用是动态编译链接的,还是静态链接的,可以用ldd命令检测例如:下面就是一个动态链接的应用程序#ldd/usr/bin/vimlinux-vdso.so.1(0x00007fff719c8000)libm.so.6=>/lib/x86_64-linux-gnu/libm.so.6(0x00007f6701f18000)libtinfo.so.6=>/lib/x86_64-linux-gnu/libtinfo.so.6(0x00007f6701ee6000)libselinux.so.1=>/lib/x86_64-linux-gnu/libselinux.so.1(0x00007f6701eba000)libsodium.so.23=>/lib/x86_64-linux-gnu/libsodium.so.23(0x00007f6701e62000)libacl.so.1=>/lib/x86_64-linux-gnu/libacl.so.1(0x00007f6701e58000)libgpm.so.2=>/lib/x86_64-linux-gnu/libgpm.so.2(0x00007f6701e50000)libpython3.10.so.1.0=>/lib/x86_64-linux-gnu/libpython3.10.so.1.0(0x00007f6701876000)libc.so.6=>/lib/x86_64-linux-gnu/libc.so.6(0x00007f670164e000)/lib64/ld-linux-x86-64.so.2(0x00007f67023af000)libpcre2-8.so.0=>/lib/x86_64-linux-gnu/libpcre2-8.so.0(0x00007f67015b7000)libexpat.so.1=>/lib/x86_64-linux-gnu/libexpat.so.1(0x00007f6701586000)libz.so.1=>/lib/x86_64-linux-gnu/libz.so.1(0x00007f670156a000)
很赞哦! (0)
上一篇:avi播放器下载
相关文章
文章评论
验证码: