资讯专栏INFORMATION COLUMN

添加第三方类库造成的linker command failed with exit code 1 (

VEIGHTZ / 480人阅读

摘要:假如我们在工程中新建某个文件就不会出现这样问题参考

linker command failed with exit code 1 (use -v to see invocation)这个错误貌似遇见并不止一次,当我想用某个第三方类库的时候(如SBJson),我直接把类库文件copy到工程目录里面,然后一编译就出现这样错误(并不是一定会出这样错误),开始以为是网上下载的类库本身问题,所以重新找类库或者其他方式将它添加进去,只要不出错就行,也一直没有深入了解根本问题,今天在给工程添加一个FMDB(SQLIte第三方类库)文件编译时又出现这种错误,一开始以为工程问题,但是新建工程后还是出现这个问题,经过网上查找,得到了解决办法;

[cpp] view plaincopy

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

在网上得到解决办法是:

在工作左边导航栏Target-->Build Phases-->compile Sources中,第三库库的所有.m文件都添加到里面,然后编译通过了;

添加.m文件

根据对比可以看见 in FMDBTest,FMDBTest的Target里添加进去了了一些.m文件

对于以上错误,根据网友解答我的理解是

我们在使用这些第三方类库文件时直接将其拖拽到工程之中,编译的的时候Xcode也没有自动引用,所以造成这样错误,这就需要我们手动添加。假如我们在工程中新建某个文件就不会出现这样问题;

参考 http://blog.hsin.tw/2012/ios-dev-undefined-symbols-for-architecture-i386/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15400.html

相关文章

  • 出现( linker command failed with exit code 1)错误总结

    摘要:以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误。如果是新添加的第三方库,且不是静态库先重复第一步过程,然后找到将此属性修改成或者,这个视情况而定。总之可以多试几次。 这种问题,通常出现在添加第三方库文件或者多人开发时。这种问题一般是找不到文件而导致的链接错误。 我们可以从如下几个方面着手排查。 1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误。show...

    Jeff 评论0 收藏0
  • "undefined reference to" 问题汇总及解决方法

    摘要:在实际编译代码的过程中,我们经常会遇到的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按照以下几种可能出现的状况去排查,可有利于理清头绪,从而迅速解决问题。 在实际编译代码的过程中,我们经常会遇到undefined reference to的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了...

    Michael_Lin 评论0 收藏0
  • [分享]iOS开发-报错:clang: error: linker command failed..

    摘要:开发这个错误一定少不了,现总结如下,一般这三方面的问题,如果不是哪你真可麻烦了引用出错,把弄成了检查一下你的所有引用再就是你引用第三方的库,你添加文件是系统没有所第三方库的文件参入的编译中去,你向项目添加文件得注意了就是不小心添加的重复的 clang: error: linker command failed with exit code 1 (use -v to see invoca...

    RyanHoo 评论0 收藏0
  • linker command failed

    错误 ld: library not found for -lPods clang: error: linker command failed with exit code 1 解决 Click on your project -> target -> build phases -> link binary with libraries then remove ...

    FrozenMap 评论0 收藏0
  • Xcode 依赖管理带来静态库动态库思考

    摘要:依赖三个系统框架,如果我们将其编译为静态库,然后这个静态库被其他工程依赖,那么其他工程依旧需要引入这三个框架。最终生成的静态库根本不知道动态库的存在。 最近整理一些项目以前依赖留下的问题,在使用 CocoaPods 和 Carthage 的时候引出了关于静态库和动态库的思考,手动编译静态库的朋友应该知道,如果自己编译了一个静态库,这个静态库依赖了 iOS 自带的库,即使你在 Xcode...

    reclay 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<