Lua资料之packagepath

本文讨论了在同一服务器上存在多个Lua项目时,如何解决因文件名相同导致的路径冲突问题。通过重新定义`package.path`和`package.cpath`来确保每个项目能够正确加载其所需的库文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

◆ 背景: 
        当多个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
1
2
★ package.cpath: 
用于搜索自己写的so库文件或者第三方的so库文件

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值