Это происходит в системе Linux. Anaconda поставляется с несколькими библиотеками C, такими как libz
, или же libgomp
, У меня большинство этих библиотек также установлено в моей системе /usr/lib
, Теперь, когда компоновщик или CMake find_package ищет эти библиотеки, я могу столкнуться с конфликтующими версиями:
Readline_INCLUDE_DIR:PATH=/home/mattmilten/anaconda3/include
Readline_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libreadline.so
Это обычно ломает мою сборку.
Как я могу дать своим системным библиотекам приоритет перед анакондами? мой LD_LIBRARY_PATH
кстати пусто
Вы установили переменные окружения, такие как C_INCLUDE_PATH, в свой каталог anaconda include dir? Это добавит этот путь к вашему пути поиска в заголовке, но не к пути поиска в библиотеке (это LIBRARY_PATH). Если это так, вы можете сбросить C_INCLUDE_PATH перед использованием cmake. Или вы можете добавить свой глобальный путь к библиотеке в C_INCLUDE_PATH, если вы хотите связать некоторые библиотеки анаконды, которых у вас нет в глобальном пути к библиотеке.
Я обычно переименовываю свою директорию acondada и перезапускаю ccmake .. из директории сборки. Я проверяю все записи в ccmake (не cmake), затем настраиваю.
Затем, чтобы снова активировать python, я изменяю имя обратно, чтобы оно соответствовало моему экспорту пути.