你能指导我如何正确地将静态库链接到iPhone项目.我使用添加到app项目的静态库项目作为直接依赖(目标 - >一般 - >直接依赖)并且所有工作正常,但是类别.静态库中定义的类别在app中不起作用.
所以我的问题是如何将静态库与一些类别添加到其他项目中?
一般来说,在其他项目的应用程序项目代码中使用的最佳做法是什么?
我正在编写一个静态库,它依赖于其他库(在我的例子中是SBJSON和ASIHTTPRequest).
如果我编译这些外部依赖关系到我的库,然后我并不能拒绝那些在编译这些类其他库.由于我的目标是建立一套对我公司静态库,可以导入到任何新的应用程序,这些编译依赖于库显然不是一种选择.
有没有人有任何建议/最佳实践来创建具有共同依赖关系的共享静态库套件?
我正在尝试编译一个依赖于2个第三方静态库的项目.
问题是,两个第三方都在其静态库分发中包含了相同的"实用程序"类,这意味着当两者都添加到我的项目中时,我会收到数十个重复的符号错误.
有没有办法让我强迫项目以某种方式编译和/或忽略其中一个重复的符号?
我发现了一个类似的问题,这里有两个静态库,在Xcode中有重复的符号,但我很想知道是否有一个编译器标志可能会做的伎俩(请注意,在这种情况下,我假设两个符号代表相同的对象).
谢谢罗格
compiler-construction xcode objective-c static-libraries ios
我有一个Xcode项目,它有一个"主"静态库目标,包括/链接到其他Xcode项目的一堆其他静态库.
构建"优化(armv6 armv7)"的主库目标时,在CreateUniversalBinary步骤中的最后阶段会发生错误.对于主库包含的库的每个.o文件,将报告以下错误(例如,FBConnectGlobal.o文件):
warning for architecture: armv6 same member name (FBConnectGlobal.o)
in output file used for input files: /Developer_Beta/Builds/MTToolbox/MTToolbox.build/Debug-iphoneos/MTToolbox.build/Objects-normal/armv6/libMTToolbox.a(FBConnectGlobal.o)
and: /Developer_Beta/Builds/MTToolbox/MTToolbox.build/Debug-iphoneos/MTToolbox.build/Objects-normal/armv7/libMTToolbox.a(FBConnectGlobal.o)
due to use of basename, truncation and blank padding
Run Code Online (Sandbox Code Playgroud)
最后,Xcode告诉构建成功了.但是,在应用程序项目中使用最终静态库时,它不会构建,因为它在构建的一部分(armv6)中找到重复的符号,并且在构建的另一部分(armv7)中错过了符号.
任何想法如何解决这一问题?
中号
我正在开发一个 iPad 应用程序,其中包含 2 个第三方静态库。这两个库中目标文件的名称相同。在构建我得到的应用程序时
“Apple Mach -O (id) 错误”
因为这两个库中目标文件的名称相同。如何解决这个问题呢?
错误看起来像:
ld: duplicate symbol _T_strcpy in /Users/indiait-supportservices/Desktop/untitled folder/Universal/lib/simulator/libSecurIDLib.a(mem.o) and /Users/indiait-supportservices/Library/Developer/Xcode/DerivedData/ReceiverForiOS-aqpprpcivvjjadbsutqqmtjsoczk/Build/Intermediates/ReceiverForiOS.build/Debug-iphonesimulator/myApp iPad.build/Objects-normal/i386/pdcrypte2.o for architecture i386
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-g++-4.2
failed with exit code 1.
Run Code Online (Sandbox Code Playgroud)