代码 > 使用musl代替gcc进行go语言的cgo编译
2022-07-29
最近在发布go代码的时候遇到一些问题
主要是集中在linux版本的gcc上的。
总的来说,gcc的问题有以下几点
1.协议问题,mit协议的代码静态编译gpl的库总觉得有点问题
2.libnss问题,由于gcc本身的特殊性,libnss不能静态编译进去,不然会有各种报错(比如dns解析时panic)
3.glibc版本不匹配问题。
所以换使用musl进行编译。
总体来说,musl提供了一个musl-gcc协议,总体更新跟着不多的文档还是很方便的。
就是各种dev包里一般提供的是glibc编译的版本,之间使用会报错
需要用aptitude source下载代码包
然后通过CC="musl=gcc" ./configure的方式手动编译,得到.a文件,再通过编译脚本以的LDFLAGS中 以-L指定进来。
其他没啥问题,接下去就要进行稳定性测试了。
点击登录