【问题标题】:Is there an equivalent to the GNU linker "--just-symbols" option for non-GNU linkers?非 GNU 链接器是否有与 GNU 链接器“--just-symbols”选项等效的选项?
【发布时间】:2011-05-28 09:59:55
【问题描述】:

-R 文件名

--just-symbols=文件名

filename 中读取符号名称及其地址,但不要重新定位它或将其包含在输出中。这允许您的输出文件以符号方式引用其他程序中定义的内存的绝对位置。您可以多次使用此选项。

例如,在我的 Mac 上,ld -R libsomething.a 甚至 gcc -Wl,-R,libsomething.a 都不起作用。

【问题讨论】:

  • 答案当然取决于您使用的非 GNU 链接器,因为 args 由调用的特定链接器处理。
  • 您收到什么错误信息;您还使用什么链接器和版本?
  • 这取决于您使用的哪个“非GNU”链接器。

标签: c macos linker gnu symbols


【解决方案1】:

既然您在谈论“您的 Mac”,我假设我们在谈论 OS X 操作系统。

在基于 UNIX 的系统上,大多数时候使用链接器“ld”(带有 -R 选项)(另请参见:ELF)。 相反,OS X 系统使用Mach-O 二进制格式和工具dyld 进行链接。 OS X 没有为库提供与 UNIX 相同的功能。在二进制文件上尝试otool -L 以查看库的预期位置。您可能还想尝试为您的二进制文件设置DYLD_LIBRARY_PATH (man dyld),但请记住安全风险(这可用于在 UNIX 系统上注入 LD_LIBRARY_PATH 之类的代码)。

【讨论】:

    猜你喜欢
    • 2016-02-19
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2010-10-10
    • 2017-04-18
    • 2015-10-07
    相关资源
    最近更新 更多