【问题标题】:Static library not working in objective c. How to make it?静态库在目标 c 中不起作用。怎么做?
【发布时间】:2012-07-13 07:16:23
【问题描述】:

ld:警告:忽略文件
/Users/srm-mac10/Downloads/ICodeBlogStaticLibrarySample/MathTest/Classes/iCodeBlogsMathLibrary/libICodeMathUtils.a,
文件中缺少所需的体系结构 i386 的未定义符号 架构 i386:“_OBJC_CLASS_$_MathFunctions”,引用自:
MathTestAppDelegate.o ld 中的 objc-class-ref:找不到体系结构 i386 的符号 clang:错误:链接器命令失败并退出 代码 1(使用 -v 查看调用)

在我尝试在目标 C 中创建静态库时出现以下错误。有什么想法吗?? 请帮帮我。

【问题讨论】:

  • 你在模拟器上运行这个吗?
  • 这是用于 OS X 还是 iOS?
  • @VXtreme :是的,我正在运行模拟器
  • @Conrad Shultz:我正在为 iOS 构建
  • 我遇到了同样的问题。我通过在设备上运行它来解决它。请在设备上查看。

标签: objective-c


【解决方案1】:

iOS 模拟器在系统的 CPU 上本地运行,这是一个 x86 架构。因此,您的代码需要为 x86 构建(可能已经可以工作)并且您链接到的任何库也需要为 x86 构建。

如果这是其他人提供给您的静态库(可能是您购买的?),那么您还需要请求 x86 版本并链接。

如果您自己构建静态库,请检查该项目的构建设置(我假设它是一个单独的项目)并确保它已配置为可用于模拟器。然后为模拟器显式构建库。

(我在静态库中遇到了一些奇怪的问题,其中 Xcode 4.x 无法自动构建正确的库架构,需要显式手动构建。)

【讨论】:

    【解决方案2】:

    我认为您必须在项目构建设置的“其他链接器标志”中设置标志“-all_load”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多