Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Objective-C程序与我自己的libobjc.A.dylib链接时出现问题_Objective C_Linker_Runtime_Clang - Fatal编程技术网

将Objective-C程序与我自己的libobjc.A.dylib链接时出现问题

将Objective-C程序与我自己的libobjc.A.dylib链接时出现问题,objective-c,linker,runtime,clang,Objective C,Linker,Runtime,Clang,我从苹果开源网站的源代码中构建了一个定制的libobjc.a.dylib,我想用这个dylib编译一个简单的程序来调试它,但是看起来clang总是使用libobjc.a.dylib系统 compile命令是: xcrun --sdk macosx10.8 clang main.m -std=c99 -framework Foundation -lobjc -I./usr/include -L. libobjc.A.dylib位于当前文件夹中。otool命令告诉我程序链接到哪个库: ~ otoo

我从苹果开源网站的源代码中构建了一个定制的libobjc.a.dylib,我想用这个dylib编译一个简单的程序来调试它,但是看起来clang总是使用libobjc.a.dylib系统

compile命令是:

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)
在该文件中,它使用了一个名为-fno-objc-link-runtime的标志,但它似乎不适用于我的笔记本电脑(mac 10.9.4,xcode 5.1.1)


尝试设置DYLD_LIBRARY_PATH环境变量,但不起作用。这是我编译代码的文件夹,有什么建议或解决方案吗?

实际上,我使用了安装\u name\u工具命令来更改库的链接:

install_name_tool -change /usr/lib/libobjc.A.dylib @executable_path/libobjc.A.dylib main
有用链接: