程序不同操作系统运行提示缺失GLIBC问题的解决方案

问题描述

rust代码在Ubuntu系统编译(cargo build --release)后,将编译好的程序放到centos系统上运行提示

/lib64/libc.so.6: version `GLIBC_2.18' not found

这是由于在Ubuntu系统上编译时链接了共享库libc2.18,但是centos系统上最高版本为2.17。对于这种情况,一般有两种方法。

解决方案

一种是在centos上安装2.18版本库
太麻烦,所以我选择了第二种方法
第二种方法是将程序用的库以静态链接方式打包到程序里,
编译命令如下:

RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target=x86_64-unknown-linux-gnu

上述编译完成后,查看二进制文件的大小,是比直接build要大的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值