centos上编译的可执行程序在suse上无法运行

在centos6.2上制作了一个可执行程序,取名为aio_test,其实是一个利用libaio读写文件的程序。

在centos6.2上可以正常编译,可以正常执行aio_test。

当我把aio_test直接copy到一个suse 10的机器上时,发现提示错误,找不到/lib64/libuuid.so (aio_test中用到了uuid库)。

后来才发现,suse机器的libuuid库是放在/usr/ lib64/中的,而不是像centos放在/lib64/中,所以aio_test一直提示说找不到uuid库。

其实这里有一个问题,难道同一个可执行程序,对于不同Linux发行版本,都要重新编译一次吗,centos一次,Ubuntu一次,suse一次,等等。

目前还没有找到答案,希望有大牛可以告诉我答案。


当我把aio_test放到suse 10中重新编译时,发现编译错误,提示说aio中的几个接口无法链接,其中的一个是io_prep_pwritev和io_prep_preadv。

这两个接口是在libaio 0.3.109版本才有的,一查看suse机器中/usr/lib64/libaio.h文件时,果然没有发现这两个接口。

果断从其他的suse机器上将新的libaio.h和libiao.so分别覆盖原来的/usr/lib64/libaio.h 和/usr/lib64/libaio.so,再次编译就通过了。

之后运行aio_test也是正常的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值