Xcode文件夹和组混淆

Xcode folders and groups confusion

本文关键字:文件夹 Xcode      更新时间:2023-10-16

我正在使用Xcode(与C++一起使用),我的项目布局(在文件系统中,而不是在Xcode中)如下所示:

子文件夹A

-文件_A_1,文件_A_2

子文件夹B

-文件_B_1,文件_B_2

现在我已经通过组在Xcode中建立了这个结构。因此,当我想在文件_B_1中包含文件_A_2时,我会在文件_B_2中写入#include "file_A_2"

有没有办法让包含看起来像#include "/SubfolderA/file_A_2",这样我就可以很容易地看到包含的文件属于哪个目录/子文件夹?

查看发生了什么的一种方法是查看构建日志并展开用于编译sourcefile.m的行。查看传递给编译器的-I选项。

如果您不喜欢,您可以在Build SettingsHeader Search Paths中添加源树,以包含$(ProjectDir)/srcroot,并使其递归,这样可以避免单独添加每个子文件夹。

然而,根据我的经验,就我记忆所及,这从来都不是必要的。

就Xcode文件夹而言,如果添加了顶级源文件夹,那么当您将所有子文件夹添加到文件系统时,它们都会自动添加,从而省去了保持同步的麻烦。但是,您可能需要在源文件组下添加顶级文件夹才能正常工作。

令人惊讶的是,在Xcode的Build Settings中,我为我的项目添加了User Header Search Paths非递归路径。这解决了我的问题。

当我试图通过在组中包含标头时,XCode出现问题,我最终来到了这里

#include "MyGroup/MyHeader.h"

事实证明,项目结构和文件系统不同步,所以我只需要从项目中删除我的组,将其放在Finder中的正确位置,然后将其拖放回正确位置的项目中,这对我来说很有效。

我不确定这是否有必要,但我也已经设置了我的应用程序的工作目录,因为我正在进行一些游戏编程,需要能够加载到.png中并制作纹理。