1

我有一个libfoo.a为 32 位 linux 机器编译的二进制静态库。我希望针对我用 cygwin 编译的 win32 项目编译它。

那可能吗?这似乎是可能的,因为存档中的所有目标文件都应该是标准ELF格式。

但是,我不断收到有关nmlibfoo.a. 当我创建一个libfoo.a包含一些与 in 中的名称相同的空函数的存根时libfoo.a,我不再收到有关这些函数的链接错误。

这甚至可能还是我错过了什么?无论如何,我该如何解决这个问题?

4

1 回答 1

0

即使您成功链接,也无法避免构建在不同平台上的代码不兼容。例如标题(glibc 和其他)在那里是不同的。为了确保兼容性,似乎对目标文件导出的符号使用了类似于修改的附加机制。

在尝试将针对不同处理器架构编译的目标文件链接在一起时,我遇到了与您类似的问题 - nm 显示所有需要的功能都存在,但链接器不相信。

于 2010-04-14T10:28:39.527 回答