gpt4 book ai didi

CMAKE - 运行时库隐藏文件

转载 作者:行者123 更新时间:2023-12-05 08:08:32 24 4
gpt4 key购买 nike

我正在运行 Linux Redhat,我安装了 Anaconda,我正在尝试使用 CMAKE 安装程序 (libspimage),但我收到以下警告/错误:

CMake Warning at src/CMakeLists.txt:74 (ADD_LIBRARY): Cannot generate a safe runtime search path for target _spimage_pybackend because files in some directories may conflict with libraries in implicit directories: runtime library [libtiff.so.5] in /usr/lib64 may be hidden by files in: /home/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 中看到的类似问题,我还尝试了另外两个类似的建议,但没有用。

非常欢迎任何其他想法。

最佳答案

警告信息

Cannot generate a safe runtime search path for target

既不CMake 查找库的能力相关(在您的情况下为 libtiff.so.5)也不链接器 链接库的能力。

警告消息意味着当一个目标(_spimage_pybackend)将被加载时,加载器将无法选择正确的库:根据loader's algorithm和目标的设置,文件 /home/michantia/anaconda2/lib/libtiff.so.5将被选择而不是合适的 /usr/lib64/libtiff.so.5 .

错误通常是在将来自不同目录的两个库链接到单个目标时导致的,当具有第二个库的目录还包含一个具有第一个库名称的文件时:

  1. 目录 /usr/lib64包含一个库 libtiff.so.5 ,链接到目标。
  2. 目录 /home/michantia/anaconda2/lib包含一个库 <A>这也链接到目标;但此目录还包含一个文件 libtiff.so.5 .

根据 CMake algorithm ,此类目标的二进制文件的运行路径将包括两个目录,因此可以找到两个库。但是这样的运行路径会混淆加载器以正确找到第一个库。

除非避免这种情况(当一个库包含在两个目录中时),否则很难处理此警告。

关于CMAKE - 运行时库隐藏文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48447728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com