我正在运行Linux Redhat,我安装了Anaconda,我正在尝试使用CMAKE
amd安装程序(libspimage)我得到以下警告/错误:
在src / CMakeLists.txt的CMake警告:74(ADD_LIBRARY): 无法为目标_spimage_pybackend生成安全的运行时搜索路径 因为某些目录中的文件可能与隐式库中的库冲突 目录: / usr / lib64中的运行时库[libtiff.so.5]可能被以下文件隐藏: /家庭/ michantia / anaconda2 / lib中
可能无法正确找到其中一些库。
当我这样做时:
echo $ PATH
我明白了:
/home/mi_a/anaconda2/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin: /sbin:/home/michantia/.local/bin:/home/michantia/bin
我试过了:
export PATH = / usr / lib64:$ PATH
希望cmake在anancoda中找到它之前会在这个目录中找到这些库,但这不起作用。我还尝试了另外两个类似的问题来解决我在stackoverflow中遇到的类似问题,但这没有用。
非常欢迎任何其他想法。
答案 0 :(得分:1)
警告信息
无法为目标
生成安全的运行时搜索路径
与 CMake 相关联, CMake 能够找到一个库(在您的情况下为libtiff.so.5
)或与链接器链接库的能力。
警告消息表示当加载目标(_spimage_pybackend
)时,加载程序将无法选择正确的库:根据loader's algorithm和目标的设置,将选择文件/home/michantia/anaconda2/lib/libtiff.so.5
而不是正确的/usr/lib64/libtiff.so.5
。
当带有第二个库的目录还包含一个带有第一个库名称的文件时,错误通常会导致从不同目录链接到单个目标两个库:
/usr/lib64
包含一个库libtiff.so.5
,该库已链接到目标。/home/michantia/anaconda2/lib
包含一个库<A>
,该库也链接到目标中;但此目录还包含文件libtiff.so.5
。根据CMake algorithm,此类目标的二进制文件的runpath将包含两个目录,因此可以找到这两个库。但是这样的runpath会混淆加载器以正确地找到第一个库。
除了避免这种情况(当一个库包含在两个目录中时),几乎无法处理此警告。