iPhone - 奇怪的编译错误

时间:2009-04-14 15:11:43

标签: iphone cocoa-touch xcode interface-builder compilation

我有一个正常运行的iPhone(Xcode)项目。必须更改某些内容,因为突然之间我收到的错误与NSLogUIActionSheet以及我一直在使用 JUST FINE 之前的其他几个项目有关。我错过了什么?任何帮助都会非常感激!

Checking Dependencies

Ld /Users/markgoldberg/Documents/iPhoneApps/iPhone_PNP/build/Debug-iphonesimulator/iPhone_PNP.app/iPhone_PNP normal i386
    cd /Users/markgoldberg/Documents/iPhoneApps/iPhone_PNP
    setenv MACOSX_DEPLOYMENT_TARGET 10.5
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk -L/Users/markgoldberg/Documents/iPhoneApps/iPhone_PNP/build/Debug-iphonesimulator -F/Users/markgoldberg/Documents/iPhoneApps/iPhone_PNP/build/Debug-iphonesimulator -filelist /Users/markgoldberg/Documents/iPhoneApps/iPhone_PNP/build/iPhone_PNP.build/Debug-iphonesimulator/iPhone_PNP.build/Objects-normal/i386/iPhone_PNP.LinkFileList -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -o /Users/markgoldberg/Documents/iPhoneApps/iPhone_PNP/build/Debug-iphonesimulator/iPhone_PNP.app/iPhone_PNP
Undefined symbols:
  ".objc_class_name_SettingsWindowViewController", referenced from:
      literal-pointer@__OBJC@__cls_refs@SettingsWindowViewController in iPhone_PNPAppDelegate.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

4 个答案:

答案 0 :(得分:3)

你解决了这个问题,但你可能不知道为什么。重要的是要知道出了什么问题以及为什么要做你修复它的事情,所以你可以让它不再发生。

问题很可能是您的SettingsWindowViewController.m文件不是您正在构建的iPhone_PNP目标的成员。项目只是容器;目标实际构建的东西,如果文件在项目中但没有分配给目标,它将不会构建。

删除文件并重新添加默认文件,将其添加到当前目标。您可能已经看到一个带有复选框的列表并且没有注意它,但是该复选框是解决问题的原因。

将来更简单的方法是将源文件拖放到目标中,或选择“获取信息”并单击“常规”选项卡中的目标复选框。

答案 1 :(得分:1)

尝试干净的构建。

答案 2 :(得分:1)

您尚未在任何地方定义班级SettingsWindowViewController

从您的解决方案(从项目中删除SettingsWindowViewController.m并重新添加它)看起来它们没有包含在cdespinosa建议的目标的“编译源”阶段中。您可以通过在“组和文件”窗格中的目标项中打开“编译源”扭曲来检查这一点。

除了cdespinosa建议设置目标成员资格的方法之外,您还可以通过左键单击标题在“组和文件”窗格中显示一个带有“目标成员”的额外列。

答案 3 :(得分:0)

好的 - 我从这个网址发现了问题: http://forums.macrumors.com/showthread.php?t=475818

我只需删除我的SettingsWindowViewController.h&来自我的项目的SettingsWindowViewController.m文件并重新添加它们。问题解决了。

谢谢大家!