树莓派4使用luarocks构建cqueues时gcc查找库目录错误如何修复
树莓派Raspbian/Pi OS下luarocks库搜索路径通用修复方案
问题根源
luarocks默认配置的系统库搜索路径仅包含x86架构的多架构目录/usr/lib/x86_64-linux-gnu,未适配ARM架构Pi OS的默认库路径/usr/lib/arm-linux-gnueabihf,导致所有需要查找系统依赖库的rock包都会出现找不到库的报错。
通用解决方案(全局生效,无需每次安装传参)
步骤1:先确认基础依赖已安装
libcrypto属于openssl开发包,先安装对应依赖:
sudo apt update && sudo apt install libssl-dev
步骤2:选择以下任意一种全局配置方式即可
方式一:修改luarocks配置文件(推荐,针对性更强)
- 查看你使用的Lua版本对应的luarocks配置文件路径,通常为:
- 系统级全局生效:
/etc/luarocks/config-<Lua版本>.lua(例如config-5.4.lua) - 当前用户生效:
~/.luarocks/config-<Lua版本>.lua
- 系统级全局生效:
- 在配置文件中添加以下内容:
-- 添加ARM架构系统库搜索路径 external_lib_dirs = { "/usr/lib/arm-linux-gnueabihf", "/usr/local/lib", "/usr/lib" } -- 添加对应头文件搜索路径 external_include_dirs = { "/usr/include/arm-linux-gnueabihf", "/usr/local/include", "/usr/include" }
- 保存退出即可,无需重启。
方式二:配置全局环境变量
如果不想修改luarocks配置文件,可以将路径写入shell配置文件永久生效:
- 编辑你使用的shell配置文件(例如
~/.bashrc、~/.zshrc),添加以下内容:
export LUAROCKS_EXTERNAL_LIBDIR="/usr/lib/arm-linux-gnueabihf" export LUAROCKS_EXTERNAL_INCDIR="/usr/include/arm-linux-gnueabihf"
- 执行
source ~/.bashrc(或对应shell配置文件)使配置立即生效。
验证效果
直接执行安装命令即可,无需额外传参:
luarocks install http
该配置对所有需要调用系统依赖的luarocks包都生效,后续安装其他rock包不会再出现找不到ARM架构系统库的问题。
内容的提问来源于stack exchange,提问作者JayabalanAaron
相关产品推荐
相关产品推荐

