Anaconda将C / C ++链接器与重复库混淆

时间:2017-10-13 09:16:16

标签: c++ c cmake anaconda

这是在Linux系统上发生的。 Anaconda附带了几个C库,如libzlibgomp。我在/usr/lib的系统上全局安装了大多数这些库。现在,只要链接器或CMake find_package查找这些库,我最终可能会出现冲突的版本:

Readline_INCLUDE_DIR:PATH=/home/mattmilten/anaconda3/include
Readline_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libreadline.so

这通常会破坏我的构建。

如何让我的系统库优先于anaconda?顺便说一句,我的LD_LIBRARY_PATH是空的。

2 个答案:

答案 0 :(得分:0)

您是否已将环境变量(如C_INCLUDE_PATH)设置为anaconda include dir?这会将该路径添加到标题搜索路径,但不会添加库搜索路径(即LIBRARY_PATH)。如果是这样,您可以在使用cmake之前取消设置C_INCLUDE_PATH。或者,如果您想要链接到全局库路径中没有的一些anaconda库,则可以将全局库路径添加到C_INCLUDE_PATH。

答案 1 :(得分:0)

我通常重命名我的acondada directoy并从build目录重新运行ccmake ..我检查ccmake中的所有条目(不是cmake)然后配置。 然后重新激活python我改回名称以匹配我的路径导出。