【问题标题】:Undefined symbols: __dyld_func_lookup for MacOSX 64-bit linking error in 10.6.7未定义符号:10.6.7 中 MacOSX 64 位链接错误的 __dyld_func_lookup
【发布时间】:2011-09-15 23:13:01
【问题描述】:

我正在尝试编译一个引用 __dyld_func_lookup 的程序。

一切编译正常,表明包含文件能够找到函数引用。但是,在最终链接时,我收到此错误:

g++ -o ../lib/macosx64/libcogmapapi.dylib -dynamiclib  ./build/CogMapApi.o ./libs/cmlabs/macosx64/AIR.a ./libs/cmlabs/macosx64/CoreLibrary.a  
Undefined symbols:
  "__dyld_func_lookup", referenced from:
      _reference in CoreLibrary.a(dlfcn_darwin.o)
      _dllopen in CoreLibrary.a(dlfcn_darwin.o)
      _dllopen in CoreLibrary.a(dlfcn_darwin.o)
      _dllopen in CoreLibrary.a(dlfcn_darwin.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status

我尝试在链接器中使用-undefined dynamic_lookup,它确实可以正确链接,但是在运行时我得到了未定义的符号,因为我在我的代码中实际上引用了__dyld_func_lookup。我猜我需要链接到一些 dylib 或框架,但是我尝试过的所有东西,比如 System 和 libdl.dylib 似乎都不起作用。

任何帮助将不胜感激!

【问题讨论】:

    标签: undefined symbols dyld


    【解决方案1】:

    在同样的情况下,链接 dylib1.0 对我有用。

    【讨论】:

    • 对于从谷歌来到这里的人,能否详细说明一下? ¯\_(ツ)_/¯
    • 您的回答没有提供上下文。您是否在 Xcode 中设置链接?或者您从命令行直接将 a 标志传递给 GCC / LLVM?
    • @Chris 我记得我在 Xcode UI 中链接了它。但我不明白为什么将它作为参数传递给 gcc 不起作用。我现在不知道我当时使用的是哪个版本的 Xcode/gcc,抱歉。 6 年前可能是 Xcode 3 或 4
    • 别担心,伙计,您的回答至少可以说是超级模棱两可/含糊不清,但这只是我的看法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2021-03-07
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多