node.js无法在/ usr / local / lib中使用lib

时间:2014-08-08 06:33:34

标签: linux node.js png shared-libraries

我使用的是使用 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 中搜索库?

谢谢!

1 个答案:

答案 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