【发布时间】:2014-08-31 10:08:51
【问题描述】:
我从苹果开源网站的源代码构建了一个自定义的 libobjc.A.dylib,我想通过使用 dylib 编译一个简单的程序来调试它,但似乎 clang 总是使用系统 libobjc.A.dylib。
编译命令为:
xcrun --sdk macosx10.8 clang main.m -std=c99 -framework Foundation -lobjc -I./usr/include -L.
libobjc.A.dylib 位于当前文件夹中。 otool 命令告诉我程序链接到哪个库:
~ otool -L a.out
a.out:
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.18.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.19.0)
在http://opensource.apple.com/source/objc4/objc4-551.1/test/test.pl 文件中,它使用了一个名为 -fno-objc-link-runtime 的标志,但它似乎不适用于我的笔记本电脑(mac 10.9.4,xcode 5.1.1)
尝试设置 DYLD_LIBRARY_PATH 环境变量,但它不起作用。这是我编译代码https://github.com/Jeswang/Compile-Issue的文件夹,有什么建议或解决方案吗?
【问题讨论】:
标签: objective-c linker runtime clang