首页 文章

忽略文件[path]缺少文件中所需的架构i386

提问于
浏览
23

我对Xcode和Iphone开发很新,遇到了以下问题:

我打开了一个新项目并添加了* .h和一个* .a文件(我从某个设备供应商那里获得) . 我收到以下警告:

ld:警告:忽略文件/ Users / udi / Desktop / Xcode / Xcode Projects / Scosche / libmyTrekSDK_armv7.a,缺少文件中所需的体系结构i386 / Users / udi / Desktop / Xcode / Xcode Projects / Scosche / libmyTrekSDK_armv7.a(2片)

如果我忽略该警告,并尝试实例化在头文件中提供给我的类,我会收到以下错误:

ld:警告:忽略文件[Path / FileName.a],缺少文件中所需的体系结构i386 [Path / FileName.a](2个切片)体系结构i386的未定义符号:“_ OBJC_CLASS _ $ _ HRMonitor”,引用自:objc-class ViewController.o中的-ref ld:找不到架构i386 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我已经检查了Framework Search Pathes(正如许多其他帖子中提到的那样)并且清楚了 .

更多信息:

  • 我正在使用Xcode 4.6.1

  • 这些文件当前位于项目的根文件夹中 .

  • 我正在使用单视图应用程序模板 .

感谢任何帮助

3 回答

  • 51

    将目标的“构建设置>仅构建活动架构”更改为“否”

    这与Dmitry Zhukov的回答是一样的,但是通过Xcode做而不是绕过它 .

  • 4

    如果您正在使用第三方代码,请记住某些SDK可能无法在模拟器上运行 . 当我在设备上运行项目时,我遇到的相同构建错误消失了 .

  • 6

    此警告意味着您正在尝试使用模拟器(i386)为设备(ARM)制作的库 .

    您可以使用此terminal命令创建通用库:

    lipo -create lib_arm.a lib_i386.a -output lib_universal.a
    

    有关更多信息 lipo command here .

相关问题