【问题标题】:Adding an existing implementation file to an Xcode project won't work将现有实现文件添加到 Xcode 项目将不起作用
【发布时间】:2010-04-27 17:53:10
【问题描述】:

当我使用 MacVIM 编写大部分代码时,我需要将新文件添加到 XCode 项目中,以便将它们编译成可执行文件。但是今天我遇到了一个 XCode 不允许添加的实现文件 (.m)。它在相应的 finder 窗口中显示为浅灰色,就好像它已经包含在项目中一样,但是当我尝试构建时,我收到一个链接器错误,指出无法找到定义此实现文件的符号。可以毫无问题地添加相应的头文件。

知道是什么导致了这个问题吗?

顺便说一句。我之前从“类”树中删除了同一文件的旧版本,以及许多其他已成功重新添加的文件。

【问题讨论】:

    标签: xcode file add


    【解决方案1】:

    我想我曾经在旧版本的 Xcode 中看到过类似的问题。 IIRC 我解决它的方式是:

    • 重命名源文件(临时)
    • 将重命名的文件添加到项目中
    • 对重命名的文件执行“另存为...”以将其恢复为原始名称

    【讨论】:

    • 非常感谢!立即工作。我很欣赏快速响应,这件事让我发疯了 ;-)
    • 令人毛骨悚然的巧合 - 我已经很久没有看到这个问题了,但今天又发生了 - 我有一个 .h 文件拒绝添加到项目中,我不得不求助于以上技巧。
    【解决方案2】:

    该文件可能已经在您的项目中,但不在您正在构建的目标中。使用详细信息视图和搜索气泡找到它,获取信息,然后在信息窗口的目标选项卡中,选中您正在构建的目标的复选框。

    另一个答案(删除和重新添加)有效,因为您最终将其从项目中删除,然后当您重新添加它时,默认情况下它会添加到当前目标。

    【讨论】:

    • @cdespinosa:嗨,克里斯——这可能是 一些 案例中的解释,但我肯定认为这在 Xcode 中显然是错误的行为。今天我注意到它是因为全局搜索和替换无法修改某个标题,因为它不在项目中 - 但是我无法在不使用上述技巧的情况下将其添加到项目中 - 之后搜索和替换工作正常.
    【解决方案3】:

    我发现从 .xcodeproj 中删除我的 pbxuser 文件解决了我的问题。令人惊讶的是,我无法在其中添加对文件的引用。这些年来,这种情况发生在我身上很多次。

    另一个技巧是:

    • 将文件移动到其他目录

    • 从那里将其添加到 XCode 项目中

    • 将其移至所需位置

    • 在组和文件中选择文件

    • 从菜单栏中选择文件 > 获取信息。完整路径将显示为红色。

    • 按选择...按钮并选择新位置的文件。

    【讨论】:

      【解决方案4】:

      如果您使用的是 Xcode 4,则可以执行以下步骤将现有文件添加到目标中:

      1) 在“Project navigator”视图中选择您的文件(也就是在 Xcode 的文件夹树中单击您的 myfile.m 文件)

      2)点击菜单项“查看”=>“实用程序”=>“显示文件检查器”(或使用快捷键“Alt + Command + 1)

      3)有一个部分叫做“目标会员”,检查你想要的目标

      【讨论】:

        【解决方案5】:

        我通过删除 .xcuserstate 文件并重新启动项目来解决此问题。我正在使用一个工作区文件,不惜一切代价。

        您可以通过

        找到任何和所有引用文件

        grep -r -h [NameOfFileThatYouAreTryingToAdd] *

        在您的项目目录中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-06-29
          • 2013-03-03
          • 1970-01-01
          • 1970-01-01
          • 2017-03-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多