前一篇文章《在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
有谁知道怎么样能够把自定义路径添加到 lua 的 package.path 中去呢?
现在我设定 LUA_PATH 的目的是为了在 VIM 中使用 quick-x 的代码补完和片断模板,所以只要让这个变量在 vim 中生效,而不是 bash 全局生效即可解决问题。
遇到的问题
在执行 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编译失败的问题/