当我使用 MacVIM 编写大部分代码时,我需要将新文件添加到 XCode 项目中,以便将它们编译成可执行文件。然而,今天我遇到了一个 XCode 不允许添加的实现文件 (.m)。它在相应的 finder 窗口中显示为浅灰色,就好像它已经包含在项目中一样,但是当我尝试构建时,我收到一个链接器错误,指出无法找到定义此实现文件的符号。可以毫无问题地添加相应的头文件。
知道是什么导致了这个问题吗?
顺便提一句。我之前从“类”树中删除了同一文件的旧版本,以及许多其他已成功重新添加的文件。
我想我曾经在旧版本的 Xcode 中看到过类似的问题。IIRC 我解决它的方式是:
该文件可能已经在您的项目中,但不在您正在构建的目标中。使用详细信息视图和搜索气泡找到它,获取信息,然后在信息窗口的目标选项卡中,选中您正在构建的目标的复选框。
另一个答案(删除和重新添加)有效,因为您最终将其从项目中删除,然后当您重新添加它时,默认情况下它会添加到当前目标。
我发现从 .xcodeproj 中删除我的 pbxuser 文件为我解决了这个问题。令人惊讶的是,我无法在其中添加对文件的引用。这些年来,这在我身上发生了很多次。
另一个技巧是:
将文件移动到不同的目录
从那里将其添加到 XCode 项目中
将其移动到所需位置
在组和文件中选择文件
从菜单栏中选择“文件”>“获取信息”。完整路径将显示为红色。
按选择...按钮并选择新位置的文件。
如果您使用的是 Xcode 4,则可以执行以下步骤将现有文件添加到目标中:
1)在“项目导航器”视图中选择您的文件(又名。单击 Xcode 文件夹树中的 myfile.m 文件)
2)点击菜单项“查看”=>“实用程序”=>“显示文件检查器”(或使用快捷键“Alt + Command + 1)
3)有一个部分叫做“目标会员”,检查你想要的目标
我通过删除 .xcuserstate 文件并重新启动项目来解决此问题。我正在使用一个工作区文件,尽管它是值得的。
您可以通过以下方式找到任何和所有引用文件
grep -r -h [NameOfFileThatYouAreTryingToAdd] *
从您的项目目录中。