我试图编译一个开源项目的二进制文件,这样我们的用户就不必自己编译它。
我注意到在一台 32 位 ubuntu 机器“A”上创建的一些二进制文件在 32 位机器“B”上不起作用,并且报告了有关丢失 .so 文件的错误。
但是,如果我在机器“B”上从头开始编译,那么所有错误都消失了。
为什么在目标机器上编译代码会使这些错误消失?我只运行了“./configure”和“make”——而不是“make-install”,所以它不像我让这些 .so 文件在全球范围内可用。
是不是编译器检测到系统库中缺少 .so 文件,在这种情况下将静态库链接到可执行文件?
Ubuntu 如何编译它的包以便 i386 包在所有 x86 机器上运行?