Как заставить мою программу работать с новейшей библиотекой Boost

0

Я скомпилировал программу C++, которая нуждается в libboost-system1.46. Я использую Ubuntu 14.04, поэтому у меня есть libboost-system1.54. Когда я запускаю программу, он говорит, что libboost_filesystem.so.1.46.1 не найден. Как я могу (если это возможно) заставить программу работать с libboost-system1.54. Возможно, есть место, где мы укажем, какую версию использовать. Я правильно думаю?

  • 3
    Перекомпилировать против новых библиотек?
  • 0
    Как? Я использовал скрипт, указанный в исходных текстах программы, и я сделал это с Ubuntu 14.04.
Показать ещё 2 комментария
Теги:
cmake
boost

2 ответа

2
Лучший ответ

Вам нужно перекомпилировать новую версию библиотеки. Библиотеки повышения AFAIK не являются бинарными, совместимыми между версиями, настолько простыми. Вы можете делать трюки, использовать другую версию (символические ссылки или другую магию), но это, скорее всего, не сработает.

Поэтому вам либо нужно предоставить версию, которая требуется, либо изменить требование - перекомпиляцию.

Если вы написали программу или создали ее, вам просто нужно повторить всю процедуру сборки, со всеми настройками перед make или компиляцией. Технически, просто перекомпоновки должен работать, но некоторые системы, такие как CMake кэширует параметры конфигурации оценены на данном этапе, и просто, призывая make снова не будет работать. Поэтому я бы предложил повторить весь процесс.

Как бы ни выглядела процедура, достаточно повторить ее.

  • 0
    Моя проблема заключалась в том, что программа, которую я использую, вызывает другие программы, которые были скомпилированы в версии 1.46. Я не знал об этом.
-3

Возможно, вы сможете создать символическую ссылку, которая указывает имя libboost-system1.46 на libboost-system1.54.

Это будет работать до тех пор, пока интерфейсы для используемой вами функции не изменились, хотя, вероятно, это не очень хорошая идея. Это может привести к тому, что ваш код будет проходить и тестироваться, но никогда не будет подходящим для каких-либо программ выпуска.

Вы должны попытаться перекомпилировать свою программу с более новой версией boost.

  • 2
    это просто плохой совет.
  • 0
    Можете ли вы гарантировать, что версии совместимы в двоичном формате?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню