我收到了这些错误:
ld: warning: directory not found for option '-L"/pathToMyApp/MyApp/Shared/Libraries/ADMS_AppLibrary"'
ld: warning: directory not found for option '-L"/pathToMyApp/MyApp/Shared/Libraries/TestFlightSDK1.1"'
ld: warning: directory not found for option '-L"/pathToMyApp/MyApp/Shared/Libraries/Medialets"'
ld: library not found for -lTestFlight
clang: error: linker command failed with exit code 1 (use -v to see invocation)
这些目录确实存在于上面的路径中。
问题是,该应用程序用于编译罚款。我所做的就是在项目中添加一个新版本的Medialets库,现在我得到了这些错误。
答案 0 :(得分:18)
有两个人似乎与
混淆的错误如果是“找不到选项的目录'-L / ...”错误这意味着它是库错误,你应该尝试:
点击你的项目(目标) 单击Build Settings 在“库搜索路径”下,删除路径 如果它是“找不到选项的目录'-F / ...”这意味着它是一个框架错误,你应该尝试:
点击你的项目(目标) 单击Build Settings 在“框架搜索路径”下,删除路径
答案 1 :(得分:8)
当我向项目添加新库时,我遇到了同样的问题。
当向项目添加新库目录时,Xcode 5自动添加“库搜索路径”路径时,似乎发生了链接器错误。
手动编辑路径后,链接器错误消失了。 (我基本上没有改变路径,只是尝试了一些不同的格式,如$(PROJECT_DIR)/ path / to / library或“$(SRCROOT)/ path / to / library”。它甚至在更改回原来之后仍然工作格式。)
我认为这是Xcode的一个错误。我正在使用Xcode 5.1(5B130a)。
答案 2 :(得分:3)
ld:警告:找不到选项'-L'的目录---- 这是库错误
选择您的项目转到构建设置标签,在图书馆搜索路径下,用此字符串替换路径 $( SRCROOT)强>
答案 3 :(得分:3)
对于“-L”问题,
如果您正在使用cmake(在我的情况下为3.3.2)并使用xcode生成器,它将为您指定的每个链接目录生成多个条目,
SSLSocket
请参阅cmake源代码,cmGlobalXCodeGenerator :: AddDependAndLinkInformation(...)执行此操作:
link_directories ("${PROJECT_SOURCE_DIR}/SDKs/thelib/lib")
将导致XCode在Lib Search Path中具有这些条目
{ ...
if(this->XcodeVersion > 15)
{
// Now add the same one but append
// $(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) to it:
linkDirs += " ";
linkDirs += this->XCodeEscapePath((*libDir + "/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)").c_str());
}
linkDirs += " ";
linkDirs += this->XCodeEscapePath(libDir->c_str());
}
这使得摆脱这个警告变得有点困难;根据您的文件结构,其中一个可能会出错 - 即使您手动删除它们,它们也会在下次重新生成项目时返回。
一个解决方法就是为它抱怨的那些创建空目录......
也可以使用“-Wl”将“传递一些参数”传递给链接器,但到目前为止,我还没有找到传递什么来沉默该特定警告。
答案 4 :(得分:1)
只需从"与二进制文件链接中删除lib" "构建阶段"似乎至少在Xcode 6中解决了这个问题。
1)转到项目导航器,找到"框架"夹
2)您的lib可能已经存在,所以只需右键单击"删除"
3)选择"删除参考文献"
4)转到您的所有文件所在的仓库或项目文件夹并拖动 进入"框架"夹
5)清理,重建并且错误应该消失
答案 5 :(得分:1)
我没有在“库搜索路径”下添加任何库路径,但是我可以通过删除“派生数据”来解决此问题,方法是转到“首选项”->“位置”