Xcode 链接器问题
Posted
技术标签:
【中文标题】Xcode 链接器问题【英文标题】:Xcode linker issue 【发布时间】:2014-03-17 14:45:22 【问题描述】:一切都很好。我刚刚从我的 Xcode 项目中删除了旧的 TestFlight 文件夹,然后将新的 TestFlight SDK 3.0 拖到我的项目中,并尝试构建并得到这些错误。
ld:警告:找不到选项的目录 '-L"/桌面/工作/游戏/ClanKingdom/Game/src/Classes/TestFlightSDK1.2.4"' ld:警告:找不到选项的目录 '-L"/桌面/工作/游戏/ClanKingdom/Game/src/Classes/Flurry"' ld: 警告:找不到选项的目录 '-L"/Desktop/Work/Games/ClanKingdom/Game/src/TestFlightSDK2.0.0"' ld: 警告:找不到选项的目录 '-L"/Desktop/Work/Games/ClanKingdom/Game/src/Flurry"' ld:警告: 找不到选项的目录 '-F"/Desktop/Work/Games/ClanKingdom/Game/src/FacebookSDK"' ld: 库 找不到 -lFlurry_4.2.3 clang:错误:链接器命令失败 退出代码 1(使用 -v 查看调用)
为什么它会给 Flurry 带来一些问题?我没有对 Flurry 进行任何更改,我也不确定为什么它会尝试链接那些旧版本的 TestFlight,因为我已经删除了它们。
有什么想法吗?
【问题讨论】:
我不知道为什么它试图链接那些旧版本的 TestFlight,因为我已经删除了它们 - 显然你没有删除它们。 哈,这些目录中已经不存在它们了! 仅删除库文件是不够的,您还需要修改您的 Xcode 项目配置以删除对它们的引用。幸运的是,Xcode 使这有点容易,因为您可以在项目配置中搜索例如 TestFlight 来查找引用。 谢谢我用这个***.com/questions/9458739/…解决了这个问题 【参考方案1】:我知道您已经解决了这个问题,但为了完整起见,您使用绝对文件路径将库链接到它们不再存在的位置。
您似乎正在链接到桌面上的 TestFlight 库。这是一个非常糟糕的主意,您应该将所有库保存在一个合理的位置,或者将它们的副本保存在项目的源代码中。这样您就可以将“图书馆搜索路径”修改为相对链接,例如
$(SRCROOT)/Code\ Folder/Third\ Party\ Classes/Google\ Analytics
所以$(SRCROOT)
将指向您的 xcode 项目所在的目录,您可以从那里手动输入库的路径。这样做的好处是您可以随代码库一起移动库,而且在这种情况下,只需将文件夹中的文件替换为您选择的路径,一切都会神奇地工作!
【讨论】:
以上是关于Xcode 链接器问题的主要内容,如果未能解决你的问题,请参考以下文章