我最近下载了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
答案 0 :(得分:1)
我可以回答第二个问题。
-lz.1.2.3
应该是
-lz
您可能不小心将zlib.1.2.3.dylib添加到项目的“带库的链接二进制”构建阶段。您应该使用标准zlib,其文件名中没有任何版本,或者只是将-lz添加到Build Settings下的Other Linker Flags,而不是在“链接二进制文件库”构建阶段添加zlib。
对于缺少的框架,我最好的猜测是它与相对路径有关,即如果你可以摆脱/../部分,而是提供一个可能解决问题的绝对路径。