苦苦挣扎于Xcode 4

时间:2011-10-29 02:39:45

标签: frameworks xcode4 linker

我最近下载了Xcode 4,现在我的两个项目在开始给我错误之前工作得很好。这两个错误都与链接选项有效,但我无法弄清楚如何更改这些选项并摆脱错误。

第一个问题是使用SDL_ttf和SDL_image框架用C ++编写的项目。项目构建正确,但是当我尝试运行时,它在控制台上给出了以下警告:

  
    

警告:无法读取@executable_path /../ Frameworks / SDL_ttf.framework / Versions / A / SDL_ttf(找不到文件)的符号。     警告:无法读取“SDL_ttf”中的符号(尚未映射到内存中)。     警告:无法读取@executable_path /../ Frameworks / SDL_image.framework / Versions / A / SDL_image(未找到文件)的符号。     警告:无法从“SDL_image”读取符号(尚未映射到内存中)。

  

由于找不到文件,因此当我尝试加载图像时,可执行文件无法加载任何图像,使其立即退出。我认为这里的问题是框架不在可执行文件上方的目录中,它们在/Library/Framework/中,在Xcode 3.2之前工作正常。我该如何解决这个问题?

编译我为iOS编写的应用程序时出现了第二个问题。除了给我一些关于iOS 5上的depracated代码的警告,我将在稍后处理它,它由于链接器错误而无法构建,我不知道如何解决,它说:

  
    

ld:找不到-lz.1.2.3的库     命令/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang失败,退出代码为1

  

1 个答案:

答案 0 :(得分:1)

我可以回答第二个问题。

-lz.1.2.3

应该是

-lz

您可能不小心将zlib.1.2.3.dylib添加到项目的“带库的链接二进制”构建阶段。您应该使用标准zlib,其文件名中没有任何版本,或者只是将-lz添加到Build Settings下的Other Linker Flags,而不是在“链接二进制文件库”构建阶段添加zlib。

对于缺少的框架,我最好的猜测是它与相对路径有关,即如果你可以摆脱/../部分,而是提供一个可能解决问题的绝对路径。