Использование нескольких версий libboost на Linux Mint - PullRequest
0 голосов
/ 23 января 2020

Я перекомпилирую код C ++ на Linux Mint, который использует libboost. Код работал нормально до обновления с Mint 18 до Mint 19.3. С тех пор я могу получить код для компиляции, но во время выполнения он завершается ошибкой, генерируемой одним или несколькими вызовами boost :: filesytem :: create_directories

При поиске 'net, казалось, что проблема может быть связана с несовместимостью версий библиотек и, конечно же, при установленном 1.65, в этой папке, по-видимому, работают библиотеки из 1.58, например / usr / lib / x86_64- linux -gnu (или что-то в этом роде).

Когда я пробую решение 'net, такое как sudo rm -f / usr / lib / x86_64- linux -gnu / libboost_ * (а затем переустановка) или sudo rm -f / usr / lib /x86_64-linux-gnu/libboost_*.so.1.5.8.0

ничего не меняется (ie файлы, похоже, остаются, как и ошибки выполнения).

При повторном запуске копия скомпилированного кода из ранее, код не сбоит.

Кто-нибудь может подсказать, как я могу решить эту проблему? Код, который я компилирую, массивный, а не мой собственный, поэтому я не знаю, с чего начать изменение вызова функции. На самом деле, я не думаю, что это проблема. Я думаю, что мне нужно знать, как стереть остатки старой установки и / или переписать все до последней установки.

FWIW, я попробовал совет здесь Удалите boost и установите другая версия и, кажется, она меня не волнует.

1 Ответ

0 голосов
/ 26 января 2020

(Размещено решение от имени автора вопроса, чтобы переместить ответ в область ответа) .

Это было решено не удалением версии системы по умолчанию, а взамен установка других версий в разных местах, а затем предпочтительно их выбор с флагом EXT_HINT для cmake.

Сайт поддержки предлагает (через примечания к выпуску для 1.60), что было сделано исправление, связанное с возвращаемым значением create_directories. В любом случае я смог заставить код работать «как написано», указав во время компиляции версию 1.58, но не версию 1.60, 1.65 или 1.72.

...