lua require
尊重原创:http://blog.csdn.net/hong201/article/details/4163378
心得: 当我们写几个不同的文件,一个主文件需要加载基它文件时,如果仅仅是用require这个来加载,是不用功的,还需要设置package
主要代码如下:
local p = "f:/test/" local m_package_path = package.path package.path = string.format("%s;%s?.lua;%s?/init.lua", m_package_path, p, p) print(package.path) --> lua文件的搜索路径 print(package.cpath) --> lua c文件的搜索路径
其中,"f:/test/" 这个一般为工程路径
举例说明:
比如在工程中,有一个文件夹:demopackage
有一个init.lua
module(..., package.seeall) function add(n1, n2) return n1 + n2 end function sub(n1, n2) return n1 - n2 end function div(n1, n2) if n2 ~= 0 then return n1 / n2 else error("require n2 is not zero") end end function mul(n1, n2) return n1 * n2 end
工程下,一个call.lua
local p = "f:/test/" local m_package_path = package.path package.path = string.format("%s;%s?.lua;%s?/init.lua", m_package_path, p, p) print(package.path) --> lua文件的搜索路径 print(package.cpath) --> lua c文件的搜索路径 require "demopackage" print("--------package: demopackage --------------") for i in pairs(demopackage) do print(i, demopackage[i]) end print("1+1 is", demopackage.add(1,1))