首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在ubuntu下面怎么编译出centos可以运行的库

2012-06-20 
在ubuntu下面如何编译出centos可以运行的库我开发环境是ubuntu,生产环境是centos,如果在开发环境中编译出

在ubuntu下面如何编译出centos可以运行的库
我开发环境是ubuntu,生产环境是centos,如果在开发环境中编译出可以让centos运行的c++库

多谢了

[解决办法]
最好的办法是CentOS本地编译,理论上Linux之间应该是兼容的,但不同的发行版存在软件版本不同、大的补丁不同等因素,不一定二进制兼容

次一点的办法是做个交叉编译环境,找个CentOS的镜像看看里面gcc、binutils、glibc的版本,按照LFS的方式,做一个交叉编译器,源代码最好用centos的srpm,而不是gnu官方版本

不想麻烦,不妨尝试下二进制兼容性

如果ubuntu和CentOS之间软件包版本相差不大,尝试静态编译,是不是可以二进制兼容

如果ubuntu中glibc等依赖库版本略小于CentOS(鉴于发行版定位,这得需要很老的ubuntu,比如CentOS 6作为目标就需要ubuntu 9.10或之前),试试动态链接能不能直接二进制兼容

理论上x64可以运行32位程序,但能达到WOW64那种兼容性的很少,最好保证位元一致
[解决办法]
当然,你在release程序的时候,像windows许多软件那样把需要的glibc等依赖全带上也是一种方法,但这不太符合linux的习惯,而且即便如此,仍有可能不兼容(如果静态链接不兼容,一般这种携带依赖库的方式也不兼容),Windows只有M$一家发行方,内核、C/C++运行库等基础设施都是M$发行的,种类不多,兼容性好,而linux不同发行版间差异可能就比较大

热点排行