跨平台编译coocs2d-x工程

跨平台编译coocs2d-x工程,第1张

概述1、文件路径问题。鉴于我们要实现跨平台处理,就要处理不同IDE对于文件路劲的管理。在VS中,代码管理完全按照物理路径去管理,剩下的部分是资源路径问题。在win7-vs2012以上的版本(vs110_xp对应版本设置再去搜索吧,已过去的工具就该放弃)可以选择在Debugging中的Working  Directory的值从$(ProjectDir)设置为$(ProjectDir)../Resourc

1、文件路径问题。鉴于我们要实现跨平台处理,就要处理不同IDE对于文件路劲的管理。在VS中,代码管理完全按照物理路径去管理,剩下的部分是资源路径问题。在win7-vs2012以上的版本(vs110_xp对应版本设置再去搜索吧,已过去的工具就该放弃)可以选择在DeBUGging中的Working Directory的值从$(ProjectDir)设置为$(ProjectDir)../Resources。但这要求每次增加资源或修改文件名也要同步在mac工作平台修改文件映射。

为放弃上面单平台管理的方式,于是cocos的团队在引擎中增加了文件管理工具fileUtils。我们只需要在在代码中增加一句:

AppDelegate::AppDelegate() {    fileUtils::getInstance()->addSearchPath("../Resources",true);}

这样子每次搜索路径时都会优先查找Resources文件夹的资源。

剩余的则是AndroID和Mac的代码文件组织。

Mac环境:

在Xcode中新建一个group对应相同的物理文件名,然后把文件夹下面的文件拉入项目文件树中,选择的方式是folder references即可。或者尝试直接整个文件夹以folder references的形式引入工程(未尝试)。

folder references:保持原先的路径物理结构,这样子才能适合多平台统一的头文件路径

group:类似于vs的文件筛选器,虚拟的路径,如果以此方式引入,则文件相对于工程的路径是同级路径,即处在同一个父目录下。


AndroID环境:

修改build_native.py中资源路径:

def copy_resources(app_androID_root):    # remove app_androID_root/assets if it exists    assets_dir = os.path.join(app_androID_root,"assets")    if os.path.isdir(assets_dir):        shutil.rmtree(assets_dir)    # copy resources    os.mkdir(assets_dir)    resources_dir = os.path.join(app_androID_root,"")'''把原路径去除    if os.path.isdir(resources_dir):        copy_files(resources_dir,assets_dir)


这在逻辑上固然增加了查找的时间,实际上可以自己手动读取配置Resources文件夹下的一个配置文件根据平台设置真正的资源路径。之后做文件路劲搜索时只使用这个唯一路径,从而减少在fileUtils中做路径测试的时间。


2、prefix head问题。在Xcode6中把cocos自己生成的路径删除掉,或者对比一下testCpp的配置文件就发现:无论是ios还是mac的工程,prefix head此项为空。


3、linux环境 待续

下面是份链接博客。

http://www.itnose.net/detail/6090401.html

总结

以上是内存溢出为你收集整理的跨平台编译coocs2d-x工程全部内容,希望文章能够帮你解决跨平台编译coocs2d-x工程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存