【发布时间】: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 似乎都不起作用。
任何帮助将不胜感激!
【问题讨论】: