错误分析—linker command failed with exit code 1
2015-11-03 14:28
330 查看
早期我在项目中导入第三方库时,经常遇到这种问题。慢慢的我发现并总结了一些规律,这类问题如果出现了,我们可以从以下几个方面排查。
1、由于疏忽,错导入 .m 文件。
假如项目中有两个文件:
xxxA.h
xxxA.m
xxxB.h
xxxB.m
由于某些需要,在 xxxB.m 文件中导入 xxxA.h 。由于疏忽错导入了 xxxA.m ,这时就会出现这样的bug了。
2、文件的重复导入也会使系统报错:linker command failed with exit code 1
在 TARGETS --> Build Settings --> Architectures 中找到重复项并删除,也可以解决这种问题。
3、在添加第三方静态库的所有文件中都出现了这种错误,这种情况可能是这个静态库路径混乱导致的链接错误。
在 Build Settings --> Search Path --> Library Search Paths 添加静态库的相应路径。
4、如果添加的第三方库不是静态库也出现了这种问题,你可以先找到在错误中出现的那个类的 .m 文件,查看他的Target Membership 。
如果没有勾选,点击勾选,然后编译看看。
如果这种问题还是存在,然后找到 Build Settings --> Linking --> Other Linker Flags ,把它的属性改为 -all_load 或者 -ObjC(这个需要视情况而定)。
相关文章推荐
- Arcengin调用GP工具“对COM组件的调用返回了错误 HRESULTE_FAIL”解决方法
- Daily Scrumming* 2015.11.3(Day 15)
- 存储几个基本概念2--RAID,LUN
- socketpair理解
- LightOJ 1282 Leading and Trailing (快数幂 + 数学)
- 屏幕方向调节---LANDSCAPE与PORTRAIT
- poj 2673 Kicc Wants to Move a Mountain! 模拟水题
- Daily Scrum 11.3
- Some index files failed to download. They have been ignored, or old ones used instead.
- httpd: apr_sockaddr_info_get() failedserver's fully qualified domain name 127.0.0.1 for ServerName
- LeetCode--Contains Duplicate
- Daily Scrum 11.3
- SOJ 2505 The Country Fair
- SDK Manager更新出现Failed to fetch URL http://dl-ssl.google.com/android/repository/repository-10.xml
- RAID0 RAID1 RAID5 RAID10区别
- open failed: ENOENT (No such file or directory). (目录层级问题)
- There were no servers available to complete the specified operation
- LeetCode70——Climbing Stairs
- 关于io流下载文件经常遇到open failed: EISDIR (Is a directory)
- 没有什么好神秘的: wait_on_page_bit