【问题标题】:linkning linux static libraries in windows with cygwin用cygwin在windows中链接linux静态库
【发布时间】:2010-04-14 09:35:10
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c linker static-libraries static-linking


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多