iOS应用程序中的动态和静态链接?

iOS应用程序中的动态和静态链接?,ios,xcode,static-libraries,dynamic-linking,Ios,Xcode,Static Libraries,Dynamic Linking,我试图在我的项目中使用静态libs.a。我在框架中添加了lib*.a,并添加了liker标志-ObjC。lib*.a是为在iOS模拟器中运行的i386而编译的。虽然该应用程序是无错误生成的,但由于以下错误,无法在iOS模拟器中启动: dyld: Library not loaded: @rpath/libclang.dylib Referenced from: /Users/asmirnov/Library/Application Support/iPhone Simulator/7.1/A

我试图在我的项目中使用静态libs.a。我在框架中添加了lib*.a,并添加了liker标志-ObjC。lib*.a是为在iOS模拟器中运行的i386而编译的。虽然该应用程序是无错误生成的,但由于以下错误,无法在iOS模拟器中启动:

dyld: Library not loaded: @rpath/libclang.dylib
  Referenced from: /Users/asmirnov/Library/Application Support/iPhone Simulator/7.1/Applications/D87A3FA9-7207-40B4-9EA0-5F06CEF6EF7B/StaticLibraryUsage.app/StaticLibraryUsage
  Reason: image not found

为什么即使我尝试使用静态链接也需要.dylib文件?使用.dylib是否会阻止应用程序在AppStore中分发?

您必须针对.dylib而不是.a文件进行链接。你可以用otool-L来检查这个。谢谢你试着帮助我,但我想理解,而不仅仅是这样做。您能回答上面的问题吗?问题是您使用的是-L和-L链接器选项,它将查找.dylib文件并针对它们进行链接,而不是.a文件,该文件可能位于同一目录中。为了强制对.a文件进行链接,有必要删除-L和-L选项,只需在附加链接器标志中添加.a文件的路径:/path/to/file/libclang.a。为什么即使尝试对.a文件使用静态链接,也需要.dylib文件?