【问题标题】:GCC 4.2.1 darwin Avoid duplicate symbolsGCC 4.2.1 darwin 避免重复符号
【发布时间】:2009-07-18 12:17:55
【问题描述】:

我正在为 iPhone OS 3.0 构建应用程序 由于 GCC 4.2.1 中的错误,我将 -all_load 标志添加到链接器,以在 iPhone OS 3.0 上构建它 但后来我得到 /Users/TMC2/Programming/Client/test/build/Debug-iphoneos/test.a(ioapi.o) 和 /Users/TMC2/Programming/Client/test/build/Debug-iphoneos/test.a 中的重复符号 _fill_fopen_filefunc (ioapi.o)

如何避免重复符号? 安迪的建议?

【问题讨论】:

  • 我遇到了这个确切的问题。这似乎是 -all_load 标志的错误。

标签: iphone gcc


【解决方案1】:

重新运行链接器命令,忽略其中一个库,看看会发生什么。如果您将构建输出通过管道传输到文件并仅编辑链接器语句,这将相当简单。

由于您是使用源代码构建的,因此值得尝试将生成 ioapi.o 的源文件之一替换为仅包含空格的内容。静态库不需要解析它们的符号,直到有东西链接到它们的可加载模块。

您的里程可能会因这两种情况而异。

【讨论】:

  • 如果您注意到,同一个库和该库中的对象被引用了两次。我遇到了同样的问题,只有在指定 -all_load 时才会出现。
猜你喜欢
  • 2016-07-04
  • 1970-01-01
  • 2014-03-04
  • 1970-01-01
  • 2019-08-30
  • 1970-01-01
  • 2015-08-10
  • 1970-01-01
  • 2021-08-01
相关资源
最近更新 更多