Xcode“找不到选项-L的目录”错误

时间:2013-12-09 20:54:56

标签: xcode compiler-errors linker-errors

我收到了这些错误:

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库,现在我得到了这些错误。

6 个答案:

答案 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)

我没有在“库搜索路径”下添加任何库路径,但是我可以通过删除“派生数据”来解决此问题,方法是转到“首选项”->“位置”