Анаконда путает компоновщик C / C ++ с дублирующимися библиотеками

Это происходит в системе 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 кстати пусто

0

Решение

Вы установили переменные окружения, такие как C_INCLUDE_PATH, в свой каталог anaconda include dir? Это добавит этот путь к вашему пути поиска в заголовке, но не к пути поиска в библиотеке (это LIBRARY_PATH). Если это так, вы можете сбросить C_INCLUDE_PATH перед использованием cmake. Или вы можете добавить свой глобальный путь к библиотеке в C_INCLUDE_PATH, если вы хотите связать некоторые библиотеки анаконды, которых у вас нет в глобальном пути к библиотеке.

0

Другие решения

Я обычно переименовываю свою директорию acondada и перезапускаю ccmake .. из директории сборки. Я проверяю все записи в ccmake (не cmake), затем настраиваю.
Затем, чтобы снова активировать python, я изменяю имя обратно, чтобы оно соответствовало моему экспорту пути.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector