Lua路径

Lua路径

在学习的路上踩坑不止,今天遇到这个坑是关于“路径”的。

在windows版本中,lua默认的路径包括当前路径,以及当前路径下的lua子目录。因此测试时,理所当然将所有lua文件都放在当前目录的lua子目录下。

切换到linux系统(debian 8),发现lua默认没有当前lua子目录。当然,可以修改lua文件,在require语句中明确增加lua来规避,例如以下语句:

local fsm = require "lua.services.fsm"

对此不同系统下的表现颇感迷惑。检查了一下Lua的代码,发现的确有差异。对于LUA_PATH_DEFAULT宏的定义,windows系统默认包含当前目录以及lua子目录,而linux系统居然默认指向“/usr/local”目录(以及该目录下的各类子目录),当然也包含了当前目录,然而却没有包含当前lua子目录。

统一两个系统的表现也很简单,无非是修改linux系统环境中的LUA_PATH_DEFAULT定义,增加当前lua子目录,例如:

"./lua/?.lua;" "./lua/?/init.lua;" \
 "./?.lua;" "./?/init.lua"
Comments are closed.