Linker Command failed with exit code 1

1.当xcode编译出现这种错误提示的时候,右击问题-->Reveal in Log 查看详细的错误信息

 

2.通过log可以看到错误原因是:ld: library not found for -lstdc++.6.0.9

 

 

3.出现这种错误的原因是:

苹果在XCode10和iOS12中移除了libstdc++这个库,由libc++这个库取而代之,

苹果的解释是libstdc++已经标记为废弃有5年了,建议大家使用经过了llvm优化过并且全面支持C++11的libc++库。

解决方法:将xcode9中 libstdc++ 库导入到xcode10中

Xcode10支持手机:

将如下三个文件拷贝到:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

libstdc++.6.0.9.tbd

libstdc++.6.tbd

libstdc++.tbd

这三个文件从Xcode9中--显示包内容获取。或者点此链接下载

 Xcode10支持模拟器:

方法和支持手机的一样,只是拷贝的路径不同

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
分别从Xcode9中相应的路径将这三个文件拷贝到Xcode10中相应的路径里

转载于:https://www.cnblogs.com/ring1992/p/10299380.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "linker command failed with exit code 1" 意思是链接器命令执行失败,返回错误代码为1。这通常表明在编译或链接过程中存在错误,可能是缺少库文件或重复定义符号。建议检查错误日志和代码,确定错误原因并进行修复。 ### 回答2: 在 Xcode 使用 C 或者 C++ 或者 Objective-C 语言开发 iOS 应用时,有些情况下会出现“linker command failed with exit code 1” 的错误。这个错误消息通常会在编译的时候出现,它会告诉你编译器找不到某个文件或者某些文件不能被链接。这个错误实际上是连接器(Linker)在连接二进制文件时发现了某个问题,从而导致编译失败。链接器是一个独立的工具,它会把所有的目标文件和库文件链接成一个完整的可执行文件。所以,这个错误通常也被称为“连接器错误”。 出现“linker command failed with exit code 1” 错误的原因有很多,下面列举了几种常见的情况: 1. 某个文件或者库文件不存在。这种情况下需要检查文件路径是否正确,或者是否已经添加到工程中。 2. 缺少依赖的库文件。这种情况下需要检查库文件是否已经添加到工程中,或者是否已经正确设置依赖关系。 3. 重复定义符号。这种情况下需要检查代码中是否定义了相同的符号,或者是否不小心把同一个符号定义在不同的源文件中。 4. 缺少符号。这种情况下需要检查代码中是否缺少了某些符号,或者是否没有正确地实现某些函数。 为了解决“linker command failed with exit code 1” 错误,我们可以采取以下措施: 1. 确认文件路径和依赖库是否正确导入。 2. 检查代码中是否有符号冲突或者缺少符号。 3. 设置正确的依赖关系和链接选项。 4. 如果以上措施无效,可以尝试清理项目并重新编译。 总之,出现“linker command failed with exit code 1” 错误并不是什么神秘的错误。只要找到错误原因并采取正确的措施,就能顺利通过编译并打包生成可执行文件。 ### 回答3: "linker command failed with exit code 1" 通常是在编译 iOS 应用程序时遇到的错误,其中一个常见的原因是框架或库缺失。 在将应用程序编译为二进制文件时,编译器会将源代码转换为可执行二进制文件, 这些文件包含可执行代码和引用外部依赖的信息,比如框架或库。链接器负责将这些信息合并到二进制文件中,以便于应用程序在目标平台上执行。 如果编译器无法在系统上找到所需的库或框架,则会出现链接器错误。此时,编译器将无法将二进制文件正确链接,最终导致“linker command failed with exit code 1 ”的错误。 解决这个问题的方法是检查所有的库和框架是否都正确安装以及是否是最新版本。可以尝试从项目中移除引用,然后再次添加它们,或者将它们手动链接到项目中,确保它们的完整路径和名称都正确。 同时,在导入第三方库或框架时,需要确保正确的引用方式,比如使用 CocoaPods 或 Carthage 来管理依赖项。这种方法可以避免错误的链接方式和版本冲突问题。 总而言之,“linker command failed with exit code 1”错误可能由多种原因引起。最常见的原因是系统中缺少必要的库或框架。通过检查和升级所有依赖项,我们可以避免这些问题,并确保应用程序的正常编译和运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值