sol*_*eil 10 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)
Run Code Online (Sandbox Code Playgroud)
事实上,这些目录确实存在于上面的路径中.
问题是,该应用程序用于编译罚款.我所做的就是在项目中添加一个新版本的Medialets库,现在我得到了这些错误.
小智 19
有两个人似乎与之混淆的错误
如果它是"找不到选项的目录'-L/..."错误这意味着它是一个库错误,你应该尝试:
单击您的项目(目标)单击库搜索路径下的构建设置,删除路径如果它是"找不到选项的目录'-F/..."这意味着它是一个框架错误,您应该尝试:
单击项目(目标)单击"框架搜索路径下的构建设置",删除路径
当我向项目添加新库时,我遇到了同样的问题.
当向项目添加新的库目录时,Xcode 5自动添加"库搜索路径"的路径时,似乎会发生链接器错误.
手动编辑路径后,链接器错误消失了.(我基本上没有改变路径,只是尝试了一些不同的格式,如$(PROJECT_DIR)/ path/to/library或"$(SRCROOT)/ path/to/library".它甚至在更改回原来之后仍然工作格式.)
我认为这是Xcode的一个错误.我正在使用Xcode 5.1(5B130a).
对于“-L”问题,
如果您使用 cmake(在我的情况下为 3.3.2)并使用 xcode 生成器,它将为您指定的每个链接目录生成多个条目,
link_directories ("${PROJECT_SOURCE_DIR}/SDKs/thelib/lib")
Run Code Online (Sandbox Code Playgroud)
请参阅 cmake 源代码,cmGlobalXCodeGenerator::AddDependAndLinkInformation(...),它执行以下操作:
{ ...
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());
}
Run Code Online (Sandbox Code Playgroud)
这将导致 XCode 在 Lib 搜索路径中包含这些条目
/Users/myuser/thelib/lib/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
/Users/myuser/thelib/lib
Run Code Online (Sandbox Code Playgroud)
所以这使得摆脱这个警告有点困难;根据您的文件结构,其中一个可能会出错 - 即使您手动删除它,它们也会在您下次重新生成项目时返回。
一种解决方法是为它抱怨的目录创建空目录......
也可以使用“-Wl”向链接器“传递一些参数”,但到目前为止我还没有找到传递什么来使该特定警告静音。
归档时间: |
|
查看次数: |
18378 次 |
最近记录: |