Lua环境下lua-http依赖安装遇SSL相关问题求助
解决Windows下Luarocks安装cqueues/luaossl找不到OpenSSL库的问题
问题根源
Windows下预编译OpenSSL的库文件路径与luarocks默认搜索路径不匹配,或使用了错误的OpenSSL安装包(如源码包而非预编译版)。
解决方案
1. 安装正确的OpenSSL预编译包
- 卸载现有OpenSSL,下载Win64/Win32预编译安装包(不要源码压缩包)。
- 安装时选择「Copy OpenSSL DLLs to the Windows system directory」,或记住默认路径
C:\Program Files\OpenSSL-Win64。 - 检查安装目录下的
lib子目录,确认存在libcrypto.lib(VC编译版)或libcrypto.a(MinGW编译版)。
2. 修正luarocks安装命令参数
方法一:直接指定CRYPTO_DIR
luarocks会自动从该目录的include和lib子目录查找文件,命令更简洁:
luarocks install cqueues CRYPTO_DIR="C:\Program Files\OpenSSL-Win64"
方法二:手动指定完整路径
如果OpenSSL库文件在子目录(如lib\VC或lib\MinGW),需明确指定:
# VC编译版示例 luarocks install cqueues CRYPTO_INCDIR="C:\Program Files\OpenSSL-Win64\include" CRYPTO_LIBDIR="C:\Program Files\OpenSSL-Win64\lib\VC"
提示:若用MinGW环境(如Lua for Windows自带的luarocks),需将
CRYPTO_LIBDIR指向C:\Program Files\OpenSSL-Win64\lib\MinGW。
3. 配置环境变量
- 将OpenSSL的
bin目录(C:\Program Files\OpenSSL-Win64\bin)添加到系统PATH。 - 重启命令行窗口后再执行安装,确保luarocks能识别OpenSSL动态链接库。
4. 尝试预编译rocks包
若源码编译失败,可使用第三方预编译包:
# 安装cqueues预编译版 luarocks install cqueues --from=https://luarocks.org/manifests/rocks-moonscript-org # 安装luaossl预编译版 luarocks install luaossl --from=https://luarocks.org/manifests/rocks-moonscript-org
内容的提问来源于stack exchange,提问作者Drake
相关产品推荐
相关产品推荐

