我们可以将32位库文件转换为64位库文件吗?

时间:2012-06-05 07:41:31

标签: linux static-libraries 32bit-64bit

我在Solaris中有一些32位库文件(.a文件)。我将我的应用程序移植到64位Linux环境。有没有办法将32位库转换为64位,还是应该用64位重新生成库?

2 个答案:

答案 0 :(得分:3)

这不仅仅是32位与64位的问题。这也是Solaris与Linux的问题。这两个操作系统具有不同的调用约定和不同的ABI。这意味着数据类型的大小可能会有所不同,编译器将内容放入寄存器和堆栈中进行函数调用的方式不同,系统调用的方式也不同等等。

在某些情况下,可能会以您希望的方式转换静态库,但您需要自己编写工具。从源代码编译更简单,更可靠,也是您无论如何都需要能够随意执行的操作(否则您无法轻松修复库中的问题,例如安全问题)。

答案 1 :(得分:2)

没有;你必须为64位重新编译它们,因为在编译期间会丢失许多必要的信息。

祝你好运。