修正lua_path导致luac编译失败的问题

前一篇文章《在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编译失败的问题/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值