CentOS 8 - /usr/bin/ld:找不到 -lnsl

CentOS 8 - /usr/bin/ld:找不到 -lnsl

我正在开发一台新的 CentOS 8 服务器来替换老化的 CentOS 6 服务器。大多数情况下一切都正常,我正在让主要用户测试他们使用服务器的所有内容。许多错误来了又去,但这个错误却不那么严重。

用户正在运行 gcc 命令:

gcc process-hdf.c -o process-hdf.exe -I/usr/include/hdf -L/usr/lib64 -lmfhdf -ldf -ljpeg -lz -lnsl -lm

最终失败

/usr/bin/ld: cannot find -lnsl

到目前为止我已经做了以下事情:

  • Ran ld -l nsl,与 相同的错误gcc
  • 已验证libnsl安装在/usr/lib64.
  • 验证了这两个包libnsllibnsl2已安装。
  • 检查缓存并列出了ldconfig两个版本。libnsl
  • 删除了该libnsl软件包,其他软件包依赖于libnsl2.移除后没有变化。

任何信息,将不胜感激。

答案1

您是否安装了 libnsl2-devel 软件包? – Vojtech Trefny 1 月 4 日 20:50

就是这样。在我发布问题之前,我搜索了其他 libnsl2 软件包,希望找到 -devel,但它没有出现在结果中,因此我认为它不存在。

结果发现 powertools 存储库已被禁用。检查存储库文件时,我所做的指向本地存储库的所有编辑都已被删除,因为文件的名称已更改。我修改的文件已重命名为 .rpmsave 文件。

修复存储库问题后,我能够安装 libnsl2-devel。现在快速检查ld -l nsl显示了预期的输出,并且编译命令现在可以工作。

相关内容