【问题标题】:Linking error - Undefined symbols for architecture x86_64 on OSX链接错误 - OSX 上架构 x86_64 的未定义符号
【发布时间】:2013-03-21 17:04:51
【问题描述】:

在 OSX 下尝试编译项目的一部分时返回以下内容:

gcc -g -pipe -L/Projects/export buf_test.o buf.o -framework CoreFoundation -o buf_test
Undefined symbols for architecture x86_64:
  "___assert_rtn", referenced from:
      _init in buf.o
      _get in buf.o
      _put in buf.o
  "___sprintf_chk", referenced from:
      _test in buf_test.o
  "___strcpy_chk", referenced from:
      _test_data_copy in buf_test.o
      ___inline_strcpy_chk in buf_test.o
  "_exit", referenced from:
      start in crt1.10.6.o
  "_printf", referenced from:
      _test in buf_test.o
  "_puts", referenced from:
      _test in buf_test.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

我们将不胜感激!

【问题讨论】:

  • 考虑将gcc 替换为gcc -v -Wall 以了解更多正在发生的事情......
  • 我今天遇到了这个问题,因为在没有最低 OS X 版本的情况下编译了第 3 方组件(例如“-mmacosx-version-min=10.7”)。这在 Mavericks/Xcode 5 升级之前有效。

标签: macos gcc x86-64


【解决方案1】:

原来这是与标准库的库命名冲突——我在 /Projects/export 中有一个名为 libSystem.a 的库,它掩盖了 libSystem.dylib 的被发现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 2018-08-20
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多