Ios Xcode为6.1.1的静态库和CoCoapod-ld:未找到库错误
不确定它是否与Xcode 6.1.1或Cocoapods 0.35.0相关 我已经用Xcode 6.1.1生成了新的静态iOS库 成功(没有椰子荚)Ios Xcode为6.1.1的静态库和CoCoapod-ld:未找到库错误,ios,xcode,xcode6,static-libraries,cocoapods,Ios,Xcode,Xcode6,Static Libraries,Cocoapods,不确定它是否与Xcode 6.1.1或Cocoapods 0.35.0相关 我已经用Xcode 6.1.1生成了新的静态iOS库 成功(没有椰子荚) 生成模拟器和设备库 脂质同时生成脂肪MyLib。一个静态的最终lib 创建新的视图应用程序项目。(我没有更改任何默认设置,例如基本SDK、有效架构。) 手动将MyLib.a和必要的头文件添加到应用程序项目中 构建应用程序项目,它工作正常!!没有错误,没有警告 错误 将相同的MyLib.a和头(上面生成的)上传到HTTP直接下载服务器(工件服务器的类
Ld Build/Products/Debug-iphonesimulator/LibTest.app/LibTest normal x86_64
cd /Users/admin/Cocoapods/Project/Library/TestProject/LibTest
export IPHONEOS_DEPLOYMENT_TARGET=8.1
ld: library not found for -lMyLib
clang: error: linker command failed with exit code 1 (use -v to see invocation)
当我对MyLib.a发出“lipo”命令时
fat文件中的架构:/Users/admin/Cocoapods/Project/Library/Libs/Final/MyLib.a是:armv7 armv7s i386 x86_64 arm64
这并不是真正的架构问题,否则在我的第一次尝试中应该会失败,因为我没有CoCoapod。Cocoapods做了一些构建配置更改,这就产生了这个问题
请帮助我解决此问题。在花了两天时间找出确切的问题后,我发现了非常愚蠢的修复方法。它的基本问题是静态库命名约定问题。 如果您在artifact/media http服务器中有静态库,并且希望与Cococapods集成,请确保库名称应为lib(您的名称).a以及标题 在我的例子中,我保留了MyLib,目前它在“pod安装”时被加载,但在应用程序构建过程中失败了。 重命名为libMyLib.a后,一切都适合我。:) 非常容易应用,但很难找到此类解决方案]
不确定cocoapods是否在指南中记录了这一点。+1是的,这是默认情况下
ld
查找库文件的方式,它应该以lib
作为前缀,文件将是libMyLib.a
,而实际的ld
链接器标志将是-lMylib
。