清理警告,我可以看到以下内容:
ld: warning: directory not found for option '-F/myPath/etc/myframework'
非标准iOS框架正在发生这种情况。如何消除警告?
答案 0 :(得分:13)
检查链接器ld
的手册页显示-Fdir
选项的以下详细信息:
将dir添加到要搜索框架的目录列表中。 在-F中搜索使用-F指定的目录 命令它们出现在命令行上和默认搜索路径之前。在Xcode4及更高版本中,可以有一个空格 在-F和目录之间。
果然,检查project.pbxproj
显示丢失的文件夹:
FRAMEWORK_SEARCH_PATHS = (
"\"$(SDKROOT)/Developer/Library/Frameworks\"",
"\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
"\"myPath/etc/myframework\"",
);
所以,我认为整个框架的处理是他们避免了所有这些麻烦。嗯,对于标准框架,即SDK框架,都是如此。除此之外,还需要更多的推文。来自Framework Programming Guide:
在非标准目录中查找框架
如果您的项目链接到任何未包含的框架 在标准位置,您必须明确指定位置 Xcode之前的那个框架可以找到它的头文件。要指定 这样一个框架的位置,添加包含的目录 Xcode的“框架搜索路径”选项的框架 项目。 Xcode将此目录列表传递给编译器和 链接器,它们都使用列表来搜索框架资源。
注意:框架的标准位置是 / System / Library / Frameworks目录和/ Library / Frameworks 本地系统上的目录。
在Xcode的Build Settings中,有一个特定的Framework Search Paths条目。
根据this question的答案添加$(SRCROOT)
的通用catch-all条目,完成了业务并消除了警告。哦,不要忘记将下拉菜单设置为“Recursive”。