Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory

这几天遇到一个这样的问题:

我有2个文件夹分别是res和src,原先是在SlotsGame_pro文件夹下面的。我先去Xcode中Delete,然后Remove Reference。然后在Finder里面移动2个文件夹到SlotsGame_pro/frameworks/runtime-src/proj.ios_mac里面,然后再拖进项目中,结果运行报错

Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory_第1张图片
res和src文件夹移动前的位置截图
Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory_第2张图片
移动位置前先在项目中删除2个对应的文件夹
Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory_第3张图片
如图,选择移到废纸篓

移到废纸篓之后,再从废纸篓把res和src2个项目在finder中移动到目的地:

Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory_第4张图片
res和src文件夹移动后的位置截图

移动之后导入项目中

Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory_第5张图片
移动位置并导入到项目中之后运行报错

然后我各种逛贴吧,搜索对应的问题。期间试过去Build SettingBuild Phases中寻找有没有对应的路径,若是有则删除,可是没找到。然后还试过了去Build Phases中去Copy Bundle Resources中删除对应的res和src文件夹再重新自己导入一遍,结果还是不行(PS:Copy Bundle Resources中的文件夹是自动生成的)

就在我有些放弃的时候,我突然看到警告的开头的位置有这样的字眼:(由于这个警告太长了,一般都是只看结尾,而不看它报错的开头)

Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory_第6张图片
由于出错的报告内容太长了,导致一开始就没有注意去看这个开头,后面慧慧哥听我说这2个文件是cocos文件,修改位置之后编译报错才想到叫我滚动上来看看报告的开头,我才去滚动上去看这个开头
Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory_第7张图片
如图,修改文件夹位置之后未修改这里的路径,导致编译出错

这个时候我去Build Phases中找到Run Script选项,发现原来是这里的路径在文件夹移动位置之后没有修改,修改之后运行,一切OK。

Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory_第8张图片
改成如图路径之后,编译运行OK

在这里,补充一下Xcode中的Create groups for any added folders和Create folder references for any added folders的区别:

Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory_第9张图片

选择Create groups方式添加一个文件,添加进来的文件的文件夹是黄色的

选择 Create folder references方式添加进来的文件的文件夹是蓝色的

两种方式的区别:

1.Create groups

为新增加的文件夹创建组,我们在项目中可以手动添加一个groups(右键点击选择New Group),但是手动添加的groups实际上并不会存在于项目的目录中,被添加进groups中的文件仍在位于它原来所在的位置,但是从外部引入进来的groups并不会如此,正如我们刚才那样。groups一旦被创建或添加,都是以黄色文件夹的形式存在的,当你想要使用文件夹中的某个类的头文件时,可以直接添加它的引用,因为groups下的cpp文件是会被编译的。

2.Create folder references

只是将文件单纯的创建了引用,这些文件不会被编译,所以在使用的时候需要加入其路径,比如在我们想要使用demo文件夹下面有某个头文件,则需要按照下面的方法添加声明:#include demo/xxx.h,否则会提示错误:xxx.h not found

至于Destination对应选项,当你选择了这个选项时,如果你想要引入的文件不在你的项目文件的目录下,Xcode则会自动将这个文件复制一份拷贝到你的项目的目录下,如果你不选择,并且这个文件也并不在你的项目目录下,那么这个文件仍然可以被使用,但是一旦你将项目拷贝到了别的地方时,这个文件就会找不到了。因为这个文件在你的电脑中,而不在你的项目中。

你可能感兴趣的:(Quick-cocos2d-x项目移动资源文件的位置后Xcode 找不到这样的文件或目录:no such file or directory)