跨平臺編譯coocs2d-x工程

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章