Привет: Я использую несколько статических библиотек ускорения для ссылки на программу, которую я пишу. Я использую FindBoost.cmake для проверки правильности установки. Все работало, пока я не попытался обновить с Boost 1.53.0 до 1.55.0. Моя первоначальная установка повышающего является ваниль установить от:CentOS7 Broken после Boost Upgrade
yum install boost boost-devel
Я пытался обновить 1.55.0 первым установка из репо этого вида человека:
[enetres]
name = ENETRES REPO for CentOS/RHEL $releasever
baseurl = http://repo.enetres.net/
enabled = 0
protect = 0
gpgcheck = 0
Он установлен, но у него не было что мне нужно, поэтому я поддержал это. Этот процесс прошел:
yum install boost-1.55.0
yum erase boost-1.55.0
Я заметил при установке 1.55.0, что он заменил мою установку 1.53.0.
Затем я попытался установить с помощью начальной загрузки с обычными процедурами от повышения: http://www.boost.org/doc/libs/1_55_0/doc/html/bbv2/installation.html
Я установил, что в/Opt/импульс/и после этого не работает, либо я гт -rf/Opt/импульс.
мышление Я вернулся к нормальной жизни, я снова переустанавливать импульс 1.53.0 от конфетки, но FindBoost.cmake больше не находит подталкивание, , даже если я вижу пути к файлам корректны для включаемых и библиотечных каталогов.
Вот пример из библиотеки, которые я использую, и я подтвердил, что заголовки в/USR/включать/импульс:
$ locate libboost_system
/usr/lib64/libboost_system-mt.a
/usr/lib64/libboost_system-mt.so
/usr/lib64/libboost_system-mt.so.1.53.0
/usr/lib64/libboost_system.a
/usr/lib64/libboost_system.so
/usr/lib64/libboost_system.so.1.53.0
Когда я бегу CMake с -DBoost_DEBUG = ON все пути каталоги lib и include выглядят правильно.
Интересный отладочный вывод:
$ ./build.sh -DBOOST_LIBRARYDIR=/usr/lib64 -DBoost_DEBUG=ON
-- [ /usr/share/cmake/Modules/FindBoost.cmake:481 ]
-- [ /usr/share/cmake/Modules/FindBoost.cmake:483 ] Boost_USE_MULTITHREADED = TRUE
-- [ /usr/share/cmake/Modules/FindBoost.cmake:485 ] Boost_USE_STATIC_LIBS = ON
-- [ /usr/share/cmake/Modules/FindBoost.cmake:487 ] Boost_USE_STATIC_RUNTIME =
-- [ /usr/share/cmake/Modules/FindBoost.cmake:489 ] Boost_ADDITIONAL_VERSIONS =
-- [ /usr/share/cmake/Modules/FindBoost.cmake:491 ] Boost_NO_SYSTEM_PATHS =
-- [ /usr/share/cmake/Modules/FindBoost.cmake:543 ] Declared as CMake or Environmental Variables:
-- [ /usr/share/cmake/Modules/FindBoost.cmake:545 ] BOOST_ROOT =
-- [ /usr/share/cmake/Modules/FindBoost.cmake:547 ] BOOST_INCLUDEDIR =
-- [ /usr/share/cmake/Modules/FindBoost.cmake:549 ] BOOST_LIBRARYDIR = /usr/lib64
...clip...
-- [ /usr/share/cmake/Modules/FindBoost.cmake:620 ] Include debugging info:
-- [ /usr/share/cmake/Modules/FindBoost.cmake:622 ] _boost_INCLUDE_SEARCH_DIRS = PATHS;C:/boost/include;C:/boost;/sw/local/include
-- [ /usr/share/cmake/Modules/FindBoost.cmake:624 ] _boost_PATH_SUFFIXES = ..clip...boost-1_53_0;boost_1_53_0;boost/boost-1_53_0;boost/boost_1_53_0;boost-1_53;boost_1_53;boost/boost-1_53;boost/boost_1_53;...clip...
-- [ /usr/share/cmake/Modules/FindBoost.cmake:644 ] location of version.hpp: /usr/include/boost/version.hpp
-- [ /usr/share/cmake/Modules/FindBoost.cmake:668 ] version.hpp reveals boost 1.53.0
-- [ /usr/share/cmake/Modules/FindBoost.cmake:744 ] guessed _boost_COMPILER = -gcc53
-- [ /usr/share/cmake/Modules/FindBoost.cmake:754 ] _boost_MULTITHREADED = -mt
-- [ /usr/share/cmake/Modules/FindBoost.cmake:797 ] _boost_RELEASE_ABI_TAG = -
-- [ /usr/share/cmake/Modules/FindBoost.cmake:799 ] _boost_DEBUG_ABI_TAG = -d
-- [ /usr/share/cmake/Modules/FindBoost.cmake:847 ] _boost_LIBRARY_SEARCH_DIRS = **/usr/lib64**;/usr/include/lib;/usr/include/../lib;/usr/include/stage/lib;PATHS;C:/boost/lib;C:/boost;/sw/local/lib
-- [ /usr/share/cmake/Modules/FindBoost.cmake:957 ] Searching for SYSTEM_LIBRARY_RELEASE: boost_system-gcc53-mt-1_53;boost_system-gcc53-mt;boost_system-mt-1_53;**boost_system-mt**;**boost_system**
-- [ /usr/share/cmake/Modules/FindBoost.cmake:993 ] Searching for SYSTEM_LIBRARY_DEBUG: boost_system-gcc53-mt-d-1_53;boost_system-gcc53-mt-d;boost_system-mt-d-1_53;boost_system-mt-d;boost_system-mt;boost_system
-- [ /usr/share/cmake/Modules/FindBoost.cmake:957 ] Searching for FILESYSTEM_LIBRARY_RELEASE: boost_filesystem-gcc53-mt-1_53;boost_filesystem-gcc53-mt;boost_filesystem-mt-1_53;**boost_filesystem-mt;boost_filesystem**
-- [ /usr/share/cmake/Modules/FindBoost.cmake:993 ] Searching for FILESYSTEM_LIBRARY_DEBUG: boost_filesystem-gcc53-mt-d-1_53;boost_filesystem-gcc53-mt-d;boost_filesystem-mt-d-1_53;boost_filesystem-mt-d;boost_filesystem-mt;boost_filesystem
-- [ /usr/share/cmake/Modules/FindBoost.cmake:1044 ] Boost_FOUND = 1
CMake Error at /usr/share/cmake/Modules/FindBoost.cmake:1138 (message):
Unable to find the requested Boost libraries.
Boost version: 1.53.0
Boost include path: /usr/include
Could not find the following static Boost libraries:
boost_system
boost_filesystem
No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the
directory containing Boost libraries or BOOST_ROOT to the location of
Boost.
Как вы можете видеть, я устанавливаю BOOST_LIBRARYDIR =/USR/lib64.
Любая помощь очень ценится.
Излишне говорить, что вы немного перепутались с установками boost ... но у меня есть вопрос: вы полностью удалили все файлы, созданные предыдущим cmake запуск конфигурации? Если вы используете сборки вне источника, просто удалите каталог «build» и начните с чистого состояния. – fedepad
Это 'Boost_COMPILER', который позволяет' FindBoost.cmake' не находить ваши библиотеки. Из вывода '-DBoost_DEBUG = ON' вы можете увидеть, что этот параметр обнаружен как' -gcc53', поэтому он ищет библиотеки с этим суффиксом (см. Строки «Поиск ...»). Хотя разрешено явно задавать этот параметр (см. [Документация FindBoost.cmake] (https://cmake.org/cmake/help/v3.0/module/FindBoost.html)), вы не можете установить его в пустую строку , Не знаю, почему Boost bootstrap создает библиотеки без суффикса компилятора. – Tsyvarev
@fedepad Я сделал повторное клонирование с нуля, но это не помогло. Ваш комментарий заставляет меня думать: есть ли другие файлы конфигурации cmake, которые застряли в нечистом состоянии? (Хотя я снова устанавливаю cmake).Есть ли файл конфигурации .cmake? – esurface