在 cqueues rock 的 luarocks/gcc 构建中选择了错误的 lib 目录

Posted

技术标签:

【中文标题】在 cqueues rock 的 luarocks/gcc 构建中选择了错误的 lib 目录【英文标题】:Wrong lib dir selected on luarocks/gcc build of cqueues rock 【发布时间】:2021-10-28 03:27:46 【问题描述】:

我正在尝试通过 luarocks 在运行最新 raspbian / pi os 的 raaspberry pi 4 上安装 http。

不确定它是否特定于 cqueues rock,但 lua 在尝试构建时,luarock(或 gcc?)试图在 /usr/lib/x86_64-linux-gnu 中找到 libcrypto.so.*,而它实际上在 Pi OS 上的 /usr/lib/arm-linux-gnueabihf/libcrypto.so 中。

Error: Failed installing dependency: https://luarocks.org/cqueues-20200726.51-0.src.rock - Could not find library file for CRYPTO
  No file libcrypto.a in /usr/lib
  No file libcrypto.a in /usr/lib/x86_64-linux-gnu
  No file libcrypto.so in /usr/lib
  No file libcrypto.so in /usr/lib/x86_64-linux-gnu
  No file matching libcrypto.so.* in /usr/lib
  No file matching libcrypto.so.* in /usr/lib/x86_64-linux-gnu
You may have to install CRYPTO in your system and/or pass CRYPTO_DIR or CRYPTO_LIBDIR to the luarocks command.
Example: luarocks install cqueues CRYPTO_DIR=/usr/local

如消息中所建议的,如何比设置CRYPTO_DIR 更通用地解决此问题。

【问题讨论】:

【参考方案1】:

这是一个临时解决方法,但我需要一个更通用的修复,因为为每个 .so 依赖项设置符号会很痛苦。

luarocks --local  install cqueues CRYPTO_DIR=/usr CRYPTO_LIBDIR=/usr/lib/arm-linux-gnueabihf OPENSSL_DIR=/usr OPENSSL_LIBDIR=/usr/lib/arm-linux-gnueabihf

【讨论】:

以上是关于在 cqueues rock 的 luarocks/gcc 构建中选择了错误的 lib 目录的主要内容,如果未能解决你的问题,请参考以下文章

luarocks 安装失败?

Luarocks:Lua modules 的包管理器

LuaRocks - 检查最新的可用版本

创建自定义版本的 luarocks 的步骤

LuaRocks 找不到 luarocks.lua

luarocks在macOS系统上的安装