当前位置: 首页 > 知识库问答 >
问题:

体系结构x86_64的ios静态库未定义符号

许招
2023-03-14

lipo-info libxxxx.a fat文件中的体系结构:libxxxx.a是:armv7 i386 arm64

但是依赖项目中的编译器给出了链接错误,

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_ClassXXXX", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

共有1个答案

罗翔
2023-03-14

您的主要线索是,它说的是“没有为体系结构X86_64找到符号”,而不是“没有为体系结构I386找到符号”。

修复是调整您的构建设置,以允许32位构建。

1)在项目导航器(左侧侧栏)中选择项目文件

2)选择项目的目标(刚出现的面板中目标下的第一个条目)

3)找到“Architectures”设置(如果找不到“Architectures”,请确保选中“All”)

4)将其从“标准架构”更改为“通用”(如果您愿意,也可以显式地改为“32位”)

你应该可以在做了这件事之后进行构建

 类似资料:
  • 完整堆栈跟踪: Ld/users/danoved/library/developer/xcode/deriveddata/todobox-gmtanlmumdrkqactpypioaempcuc/build/products/debug-iphonesimulator/stash.appex/stash normal x86_64 cd/users/danoved/source/myproject

  • 我知道错误从何而来。我已经在C++代码下面标记了它。我不知道这个错误。希望有人帮帮我。如何修复这个问题? 错误为:体系结构x86_64的符号未定义:“operator<<(std::__1::basic_ostream &,stack&)”,引用自:main中的路径(int,int)。o ld:找不到体系结构x86_64的符号clang:error:链接器命令失败,退出代码为1(使用-v查看调用)

  • 使用符合03标准的编译器(gcc-3.3.2的安全关键变体)。该标准规定必须定义静态成员对象(9.4.2(4))。它还规定“一个定义”规则适用,但不需要诊断(9.4.2(5))。以下代码有效吗? 也就是说,没有“静态常量int fred::JOE;”。我这样问是因为我们有一个例子(显然),模板类中的静态常量从未定义过,代码在某些上下文中工作,但在其他上下文中不工作。我用一个枚举替换了静态常量int

  • 我已经用cocoaPods安装了一个库(第一次使用cocoaPod),因为我在“架构x86_64的未定义符号”部分中有很多错误。Libpods.a在我的项目中是红色的,在pods产品组中,Foundation.Framework在pods中是红色的。我试着重新安装它,清除项目(也是derivedData),从链接库中删除libpod.a和其他东西,问题仍然没有改变。我的播客文件是: 在他们三个像那

  • 结构体定义的一般方式如下: type identifier struct { field1 type1 field2 type2 ... } type T struct {a, b int} 也是合法的语法,它更适用于简单的结构体。 结构体里的字段都有 名字,像 field1、field2 等,如果字段在代码中从来也不会被用到,那么可以命名它为 _。 结构体的字段可以是任何

  • 在ffmpeg/classes/lib/libavcodec.a(aacencdsp.o)中,为iOS模拟器构建,但链接到为独立构建的对象文件中,文件'ffmpeg/classes/lib/libavcodec.a'用于体系结构x86_64。 我的库文件libavcodec.a支持x86_64、i386、arm64、armv7、arm7等。 我在中设置了下面的代码,然后在中设置了下面的代码,但没有