Я скомпилировал программу C++, которая нуждается в libboost-system1.46
. Я использую Ubuntu 14.04, поэтому у меня есть libboost-system1.54
. Когда я запускаю программу, он говорит, что libboost_filesystem.so.1.46.1
не найден. Как я могу (если это возможно) заставить программу работать с libboost-system1.54
. Возможно, есть место, где мы укажем, какую версию использовать. Я правильно думаю?
Вам нужно перекомпилировать новую версию библиотеки. Библиотеки повышения AFAIK не являются бинарными, совместимыми между версиями, настолько простыми. Вы можете делать трюки, использовать другую версию (символические ссылки или другую магию), но это, скорее всего, не сработает.
Поэтому вам либо нужно предоставить версию, которая требуется, либо изменить требование - перекомпиляцию.
Если вы написали программу или создали ее, вам просто нужно повторить всю процедуру сборки, со всеми настройками перед make
или компиляцией. Технически, просто перекомпоновки должен работать, но некоторые системы, такие как CMake кэширует параметры конфигурации оценены на данном этапе, и просто, призывая make
снова не будет работать. Поэтому я бы предложил повторить весь процесс.
Как бы ни выглядела процедура, достаточно повторить ее.
Возможно, вы сможете создать символическую ссылку, которая указывает имя libboost-system1.46 на libboost-system1.54.
Это будет работать до тех пор, пока интерфейсы для используемой вами функции не изменились, хотя, вероятно, это не очень хорошая идея. Это может привести к тому, что ваш код будет проходить и тестироваться, но никогда не будет подходящим для каких-либо программ выпуска.
Вы должны попытаться перекомпилировать свою программу с более новой версией boost.