【问题标题】:Can't find shared library running freshly-built nginx找不到运行新构建的 nginx 的共享库
【发布时间】:2014-06-23 16:53:01
【问题描述】:

我已经在我的目标机器 (Linux) 上使用 3rd 方模块 (ngx_mongo) 构建了 nginx。 这个模块需要两个额外的库:pcre 和 yajl。 我分别构建和安装了这两个,它们安装到 /usr/local/lib 和头文件到 /usr/local/include。

然后我配置了 nginx 的构建:configure --add-module=/home/greg.zoller/working/ngx_mongo 这找到了所有需要的库并成功构建了没有错误。 安装nginx到默认/usr/local/nginx。

当我去运行 /usr/local/nginx/sbin/nginx 我得到这个错误:

./nginx:加载共享库时出错:libyajl.so.2:无法打开共享对象文件:没有这样的文件或目录

为什么找不到 libyajl.so.2?该文件存在于 /usr/local/lib 中,并且构建找到了它。

我运行了 ldconfig -v 并且没有 yajl 库。我尝试运行(作为 root 而不是)只是 ldconfig。没有变化。

我错过了什么?

【问题讨论】:

标签: c linux nginx shared


【解决方案1】:

动态加载器仅查找存在于/etc/ld.so.conf 中声明的文件夹中的库。 /usr/local/lib 默认情况下可能不存在。此外,当添加新的库时,您需要运行ldconfig,因为库文件夹的内容已被缓存。

【讨论】:

  • 感谢 'ldconfig' 缓存说明。刚刚拯救了我的一天。
猜你喜欢
  • 2021-07-17
  • 2014-06-12
  • 2011-06-12
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
相关资源
最近更新 更多