Lua资料之packagepath

◆ 背景:
        当多个lua项目在同一台服务器中有多个文件的文件名相同时,会优先使用路径中的排在前的项目的文件,导致引用的文件并不是你预期的那样。
        例如:有项目A和项目B,都有一个文件test.lua,而test.lua这个文件在项目A和项目B内容都是不一样的,如果nginx的配置中,lua的packagepath是把项目A放在了前面。那么项目B在引用test.lua的时候,会使用了项目B的test.lua文件,这就导致了错误的出现。
        我们可以在各自的项目中,重新定义packagepath。这样就避免了路径冲突的问题。

★ package.path:
用于搜索自己写的库文件或者第三方的库文件

--搜索指定路径下,以 .lua结尾的文件
package.path = "../t/?.lua;../xjnlib/src/?.lua;"..package.path

★ package.cpath:
用于搜索自己写的so库文件或者第三方的so库文件

--搜索指定路径下,以.so结尾的文件
package.cpath = "../xjnlib/bin/?.so;"..package.cpathpackage.cpath = "../xjnlib/bin/?.so;"..package.cpath

猜你喜欢

转载自blog.csdn.net/sky6even/article/details/81674390
今日推荐