静态库机器是独立的吗?

时间:2010-09-06 10:59:47

标签: c++ static

好吧,我正在使用Ubuntu 10.04.1(Intel Core2Quad)LTS在C ++中开发一个程序,但这些版本在Debian 5.0.5(Intel(R)Xeon(R)CPU)中运行。某些库(如crypto ++或mysqlclient)在两个操作系统中都有不同的版本。所以我决定使用在Ubuntu中静态编译的所有库静态编译二进制文件,然后将完成的二进制文件上传到Debian。

我不确定这个方法是否正确,因为静态库可能依赖于架构,可能会在Debian机器中发生冲突。如果我想在Debian中使用Ubuntu的新库版本,我应该在Debian中编译它们吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

不,它与机器无关。唯一的区别是所有库都与可执行文件捆绑在一起,因此程序在加载失败时会出现“库未找到”消息的风险。总之,它适用于所有Linux发行版,但它不适用于Windows,例如。

答案 1 :(得分:2)

他们依赖于架构。通常情况下,库被编译到x86机器上的通用架构,例如i686,它可以在Intel Xeon和Intel Core2Quad上运行良好(但不能在例如旧的Intel Pentium处理器上运行)