我使用的是使用 libpng 的节点模块 png 。安装 libpng 后,我在 / usr / local / lib 中找到了一些库。我需要 png 模块:
var png = require('png')
它抱怨无法找到 libpng16.so 。
错误:libpng16.so.16:无法打开共享对象文件:没有这样的文件或目录
但 / usr / local / lib 中确实存在 libpng16.so.16 。然后我将所有libpng *复制到 / usr / lib 并再次运行上面的代码,这次没有错误!
我的问题:如何让Node在 / usr / local / lib 中搜索库?
谢谢!
答案 0 :(得分:0)
这是一个Linux"安装库"问题,而不是node.js问题(我对同样的事情感到困惑,并在这里寻找想法)。
make install
通常会将库复制到/usr/local/lib
并输出一些样板,建议您修改LD_LIBRARY_PATH
或更新ld
配置。但它并没有为你做到这一点。
(有一点可以让这更令人困惑的是,默认情况下编译器工具链将搜索/ usr / local,因此任何依赖库都可以编译/链接。)
以root身份或使用sudo运行ldconfig
(/sbin/ldconfig
)将更新运行时链接程序缓存,并修复问题。如果没有,请检查/etc/ld.so.conf
中的至少一个或/etc/ld.so.conf.d/
中的任何文件是否包含' / usr / local / lib'。
有关详细信息,请运行man ldconfig