好吧,我正在使用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中编译它们吗?
提前致谢
答案 0 :(得分:2)
不,它与机器无关。唯一的区别是所有库都与可执行文件捆绑在一起,因此程序在加载失败时会出现“库未找到”消息的风险。总之,它适用于所有Linux发行版,但它不适用于Windows,例如。
答案 1 :(得分:2)
他们依赖于架构。通常情况下,库被编译到x86机器上的通用架构,例如i686,它可以在Intel Xeon和Intel Core2Quad上运行良好(但不能在例如旧的Intel Pentium处理器上运行)