在我们的产品中,我们发布了一些动态链接到"libpam"等系统库的linux二进制文件.在某些客户系统上,当程序运行时,我们在stderr上收到以下错误:
./authpam: /lib/libpam.so.0: no version information available (required by authpam)
Run Code Online (Sandbox Code Playgroud)
应用程序运行正常并从动态库执行代码.所以这不是一个致命的错误,它只是一个警告.
我认为当系统安装库缺少我们的可执行文件期望的东西时,这是来自动态链接器的错误.我不太了解动态链接过程的内部结构......并且谷歌搜索主题并没有多大帮助.:(
任何人都知道导致此错误的原因 ......我怎么能诊断原因?...以及我们如何更改可执行文件以避免此问题?
更新:客户升级到最新版本的debian"testing"并发生了同样的错误.所以它不是一个过时的libpam库.我想我想了解链接器在抱怨什么?我该如何调查根本原因等?
我有一个 conda 环境设置,必须LD_LIBRARY_PATH这样设置:
export LD_LIBRARY_PATH=$HOME/.miniconda3/envs/ll4ma/lib:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
然而,一旦我这样做了,我的终端就开始充斥着这样的消息:
/bin/bash: /home/ll4ma/.miniconda3/envs/ll4ma/lib/libtinfo.so.6: no version information available (required by /bin/bash)
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?我正在为 ROS 构建一些代码,并且catkin此消息在此过程中可能会打印 20 次,这使得终端输出很难查看。