修正lua_path導致luac編譯失敗的問題

來源:互聯網
上載者:User
前一篇文章《在Mac OS上設定Quick-x和Cocos2d-x的Vim開發環境》中介紹的.bash_profile 的 LUA_PATH 配置設計不好,會衝掉 lua 的 packange.path ,本文作者針對這一問題進行了修正(本文已在CocosChina討論區發布,歡迎加入討論)。

遇到的問題
在執行 Quick-x 的打包 framework 的指令碼 bin/make_framework_package.sh 的時候,執行失敗,遇到以下錯誤:
Compile Lua source files in path /Users/ty/workspaces/quick-cocos2d-x/framework
luajit: unknown luaJIT command or jit.* modules not installed
ERR: cannot compile file /Users/ty/workspaces/quick-cocos2d-x/framework/api/Context.lua


造成的原因 使用google搜尋了 lua-users 之後瞭解到這個情況是由於 lua 的 vm 無法在運行時知道所依賴的模組。造成這個問題的原因 是我在 中匯出了全域變數 LUA_PATH, 當系統存在 LUA_PATH 這個全域變數時,lua 的 package.path 會自動使用這個全域變數, 所以原來的 pakcage.path 就背衝掉了。

有誰知道怎麼樣能夠把自訂路徑添加到 lua 的 package.path 中去呢。

現在我設定 LUA_PATH 的目的是為了在 VIM 中使用 quick-x 的代碼補完和片斷模板,所以只要讓這個變數在 vim 中生效,而不是 bash 全域生效即可解決問題。

所以修改 .bash_profile 如下:

1 2 3 4 5 6 7 8 9 10 11 12 # NOTE: cocos2d-x-v3 中的 lua 介面檔案在 lua.vim 的掃描時報錯,所以我拿出來到 .vim/lua 目錄下,做二次加工 VIM_LUA_PATH= "$(echo `cd ~/.vim/lua/cocos2d-x-v3/ && pwd`)/?.lua;${VIM_LUA_PATH}"   # NOTE: 我發現還是不能輕易的使用系統全域變數 LUA_PATH,因為這會把 lua 的 package.path 衝掉。 #       導致 luajit 編譯不工作。所以我拿出來放到 vim 的執行之前,作為傳入變數 if ! [[ -z "$VIM_LUA_PATH" ]]; then    VI= "$(echo `which vim`)"    alias vi= "LUA_PATH=\"${VIM_LUA_PATH}\" ${VI}"    alias vim= "LUA_PATH=\"${VIM_LUA_PATH}\" ${VI}"    VI= "$(echo `which mvim`)"    alias mvim= "LUA_PATH=\"${VIM_LUA_PATH}\" ${VI}" fi

來源網址:http://yi.github.io/work/2014/06/28/修正LUA_PATH導致luac編譯失敗的問題/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.