linux - node.js 无法使用/usr/local/lib 中的 lib

标签 linux node.js png shared-libraries

我正在使用 Node 模块png,它使用libpng。安装libpng后,我在/usr/local/lib中找到了一些库。我需要 png 模块:

var png = require('png')

它提示找不到libpng16.so

Error: libpng16.so.16: cannot open shared object file: No such file or directory

但是libpng16.so.16确实存在于/usr/local/lib中。然后我将所有 libpng* 复制到 /usr/lib 并再次运行上面的代码,这次没有错误!

我的问题:如何让 Node 在 /usr/local/lib 中搜索库?

谢谢!

最佳答案

这是一个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

关于linux - node.js 无法使用/usr/local/lib 中的 lib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25197289/

相关文章:

node.js - 如何获得使用 Node fs创建文件/目录的权限

delphi - 为什么 Delphi XE7 在每次 FMX 表单保存时都会更改 PNG 图像?

php - 如何在 PHP 中为透明的 PNG 文件着色?

html - 按钮图像状态 : Png files disappear when clicked

python - 为什么 buildbot *NOT* 应该失败?

linux - 使用脚本获取数据并显示一半

c - 输入目录作为c中的命令行参数

Linux AMT 工具总是抛出 404 错误

javascript - 如何在 Mongoose 模式中添加子文档

javascript - 序列化 : How to query model by 1:n association, 但在单个查询中包含所有关联对象 (PostgreSQL)