我正在开发一台新的 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
. - 验证了这两个包
libnsl
并libnsl2
已安装。 - 检查缓存并列出了
ldconfig
两个版本。libnsl
- 删除了该
libnsl
软件包,其他软件包依赖于libnsl2
.移除后没有变化。
任何信息,将不胜感激。
答案1
您是否安装了 libnsl2-devel 软件包? – Vojtech Trefny 1 月 4 日 20:50
就是这样。在我发布问题之前,我搜索了其他 libnsl2 软件包,希望找到 -devel,但它没有出现在结果中,因此我认为它不存在。
结果发现 powertools 存储库已被禁用。检查存储库文件时,我所做的指向本地存储库的所有编辑都已被删除,因为文件的名称已更改。我修改的文件已重命名为 .rpmsave 文件。
修复存储库问题后,我能够安装 libnsl2-devel。现在快速检查ld -l nsl
显示了预期的输出,并且编译命令现在可以工作。