c++ boost cmake cgal

c++ - CMake no encuentra Boost



install cgal (5)

Vi al menos 3 preguntas con el mismo título que esta pregunta. Cada uno de ellos tenía una respuesta diferente que funcionaba para el OP, pero no para mí, así que lamento repetir la pregunta ...

Estoy tratando de instalar CGAL. Describen su proceso de instalación como algo tan simple here , sección 6.1. Cuando ejecuto cmake-gui y luego hago clic en configure , obtengo la siguiente salida

CMake Error at D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:1192 (message): Unable to find the requested Boost libraries. Boost version: 1.51.0 Boost include path: D:/program files/boost_1_51 The following Boost libraries could not be found: boost_thread boost_system 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. Call Stack (most recent call first): cmake/modules/CGAL_SetupBoost.cmake:6 (find_package) cmake/modules/CGAL_SetupDependencies.cmake:85 (include) CMakeLists.txt:590 (include)

Pero configuré BOOST_ROOT , en la interfaz de usuario de cmake, a D:/program files/boost_1_51 , que existe. Y las dos bibliotecas que menciona están definitivamente instaladas. ¿Que está sucediendo aquí? ¿Que necesito hacer?

EDITAR : Se adjunta la salida cuando se ejecuta cmake -DBoost_DEBUG=ON

D:/program files/CGAL-4.1>cmake -DBoost_DEBUG=ON == Setting paths == -- Build CGAL from release in directory CGAL-4.1 -- Packagenames: CGAL-4.1 == Setting paths (DONE) == == Generate version files == -- CGAL_MAJOR_VERSION=4 -- CGAL_MINOR_VERSION=1 -- CGAL_BUGFIX_VERSION=0 -- CGAL_SONAME_VERSION=10 -- CGAL_SOVERSION =10.0.0 -- CGAL_REFERENCE_CACHE_DIR= -- Building shared libraries -- Targetting Visual Studio 10 Win64 -- Target build enviroment supports auto-linking -- Using VC10 compiler. -- Generator uses intermediate configuration directory: $(Configuration) -- USING CMake version: 2.8.10 -- System: Windows == Generate version files (DONE) == == Set up flags == -- Build type: Release -- USING CXXFLAGS = '' /DWIN32 /D_WINDOWS /W3 /Zm1000 /GR /EHsc -D_CRT_SECURE_NO_ DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_ WARNINGS /fp:strict /fp:except- /MD /O2 /Ob2 /D NDEBUG'' -- USING LDFLAGS = '' /STACK:10000000 /machine:x64 /INCREMENTAL:NO'' == Set up flags (DONE) == == Detect external libraries == -- External libraries supported: GMP;MPFR;ZLIB;OpenGL;LEDA;MPFI;RS;RS3;OpenNL;TA UCS;Eigen3;BLAS;LAPACK;QGLViewer;ESBTL;Coin3D;NTL;IPE -- Preconfiguring library: GMP ... -- GMP has been preconfigured: -- CGAL_UseGMP-file: -- GMP include: D:/program files/CGAL-4.1/auxiliary/gmp/include -- GMP libraries: D:/program files/CGAL-4.1/auxiliary/gmp/lib/libgmp-10.lib -- GMP definitions: -- USING GMP_VERSION = ''5.0.1'' -- Preconfiguring library: MPFR ... -- MPFR has been preconfigured: -- CGAL_UseMPFR-file: -- MPFR include: D:/program files/CGAL-4.1/auxiliary/gmp/include -- MPFR libraries: D:/program files/CGAL-4.1/auxiliary/gmp/lib/libmpfr-4.li b -- MPFR definitions: -- USING MPFR_VERSION = ''3.0.0'' -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:566 ] _b oost_TEST_VERSIONS = 1.56.1;1.56.0;1.56;1.55.1;1.55.0;1.55;1.54.1;1.54.0;1.54;1. 53.1;1.53.0;1.53;1.52.1;1.52.0;1.52;1.51.1;1.51.0;1.51;1.50.1;1.50.0;1.50;1.49.1 ;1.49.0;1.49;1.48.1;1.48.0;1.48;1.47.1;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.1;1.4 5.0;1.45;1.44.1;1.44.0;1.44;1.43.1;1.43.0;1.43;1.42.1;1.42.0;1.42;1.41.1;1.41.0; 1.41;1.40.1;1.40.0;1.40;1.39.1;1.39.0;1.39;1.38.1;1.38.0;1.38;1.37.1;1.37.0;1.37 ;1.56.0;1.56;1.55.0;1.55;1.54.0;1.54;1.53.0;1.53;1.52.0;1.52;1.51.0;1.51;1.50.0; 1.50;1.49.0;1.49;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.0;1 .44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41;1.40.0;1.40;1.39.0;1.39;1.38.0;1.38;1.37 .0;1.37;1.36.1;1.36.0;1.36;1.35.1;1.35.0;1.35;1.34.1;1.34.0;1.34;1.33.1;1.33 -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:568 ] Bo ost_USE_MULTITHREADED = TRUE -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:570 ] Bo ost_USE_STATIC_LIBS = OFF -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:572 ] Bo ost_USE_STATIC_RUNTIME = -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:574 ] Bo ost_ADDITIONAL_VERSIONS = 1.56.1;1.56.0;1.56;1.55.1;1.55.0;1.55;1.54.1;1.54.0;1. 54;1.53.1;1.53.0;1.53;1.52.1;1.52.0;1.52;1.51.1;1.51.0;1.51;1.50.1;1.50.0;1.50;1 .49.1;1.49.0;1.49;1.48.1;1.48.0;1.48;1.47.1;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45. 1;1.45.0;1.45;1.44.1;1.44.0;1.44;1.43.1;1.43.0;1.43;1.42.1;1.42.0;1.42;1.41.1;1. 41.0;1.41;1.40.1;1.40.0;1.40;1.39.1;1.39.0;1.39;1.38.1;1.38.0;1.38;1.37.1;1.37.0 ;1.37 -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:576 ] Bo ost_NO_SYSTEM_PATHS = -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:644 ] De clared as CMake or Environmental Variables: -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:646 ] BOOST_ROOT = D:/program files/boost_1_51/bin -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:648 ] BOOST_INCLUDEDIR = -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:650 ] BOOST_LIBRARYDIR = -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:652 ] _b oost_TEST_VERSIONS = 1.56.1;1.56.0;1.56;1.55.1;1.55.0;1.55;1.54.1;1.54.0;1.54;1. 53.1;1.53.0;1.53;1.52.1;1.52.0;1.52;1.51.1;1.51.0;1.51;1.50.1;1.50.0;1.50;1.49.1 ;1.49.0;1.49;1.48.1;1.48.0;1.48;1.47.1;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.1;1.4 5.0;1.45;1.44.1;1.44.0;1.44;1.43.1;1.43.0;1.43;1.42.1;1.42.0;1.42;1.41.1;1.41.0; 1.41;1.40.1;1.40.0;1.40;1.39.1;1.39.0;1.39;1.38.1;1.38.0;1.38;1.37.1;1.37.0;1.37 ;1.56.0;1.56;1.55.0;1.55;1.54.0;1.54;1.53.0;1.53;1.52.0;1.52;1.51.0;1.51;1.50.0; 1.50;1.49.0;1.49;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.0;1 .44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41;1.40.0;1.40;1.39.0;1.39;1.38.0;1.38;1.37 .0;1.37;1.36.1;1.36.0;1.36;1.35.1;1.35.0;1.35;1.34.1;1.34.0;1.34;1.33.1;1.33 -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:734 ] lo cation of version.hpp: D:/program files/boost_1_51/boost/version.hpp -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:754 ] ve rsion.hpp reveals boost 1.51.0 -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:786 ] gu essed _boost_COMPILER = -vc100 -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:796 ] _b oost_MULTITHREADED = -mt -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:839 ] _b oost_RELEASE_ABI_TAG = - -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:841 ] _b oost_DEBUG_ABI_TAG = -gd -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:884 ] _b oost_LIBRARY_SEARCH_DIRS = D:/program files/boost_1_51/bin/lib;D:/program files/ boost_1_51/bin/stage/lib;D:/program files/boost_1_51/lib;D:/program files/boost_ 1_51/../lib;D:/program files/boost_1_51/stage/lib;C:/boost/lib;C:/boost;C:/Progr am Files (x86)/boost/boost_1_51_0/lib;C:/Program Files (x86)/boost/boost_1_51/li b;C:/Program Files (x86)/boost/lib;C:/Program Files (x86)/boost;/sw/local/lib -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:962 ] Se arching for THREAD_LIBRARY_RELEASE: boost_thread-vc100-mt-1_51;boost_thread-vc10 0-mt;boost_thread-mt-1_51;boost_thread-mt;boost_thread -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:994 ] Se arching for THREAD_LIBRARY_DEBUG: boost_thread-vc100-mt-gd-1_51;boost_thread-vc1 00-mt-gd;boost_thread-mt-gd-1_51;boost_thread-mt-gd;boost_thread-mt;boost_thread -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:962 ] Se arching for SYSTEM_LIBRARY_RELEASE: boost_system-vc100-mt-1_51;boost_system-vc10 0-mt;boost_system-mt-1_51;boost_system-mt;boost_system -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:994 ] Se arching for SYSTEM_LIBRARY_DEBUG: boost_system-vc100-mt-gd-1_51;boost_system-vc1 00-mt-gd;boost_system-mt-gd-1_51;boost_system-mt-gd;boost_system-mt;boost_system -- [ D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:1108 ] B oost_FOUND = FALSE CMake Error at D:/program files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmak e:1192 (message): Unable to find the requested Boost libraries. Boost version: 1.51.0 Boost include path: D:/program files/boost_1_51 The following Boost libraries could not be found: boost_thread boost_system 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. Call Stack (most recent call first): cmake/modules/CGAL_SetupBoost.cmake:6 (find_package) cmake/modules/CGAL_SetupDependencies.cmake:85 (include) CMakeLists.txt:590 (include) -- Boost include: D:/program files/boost_1_51 -- Boost libraries: -- Boost definitions: -- USING BOOST_VERSION = ''1.51.0'' == Detect external libraries (DONE) == == Write compiler_config.h == == Write compiler_config.h (DONE) == == Generating build files == Configuring libCGAL -- Requested component: MPFR -- Requested component: GMP libCGAL is configured -- Sources for CGAL component library ''Core'' detected Configuring libCGAL_Core -- Requested component: MPFR -- Requested component: GMP libCGAL_Core is configured -- Sources for CGAL component library ''ImageIO'' detected Configuring libCGAL_ImageIO -- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) -- OpenGL include: -- OpenGL libraries: glu32;opengl32 -- Requested component: MPFR -- Requested component: GMP libCGAL_ImageIO is configured -- NOTICE: CGAL_ImageIO needs ZLib to read compressed files. That feature will n ot be activated. -- Sources for CGAL component library ''Qt3'' detected Configuring libCGAL_Qt3 -- CGAL_Qt3 needs Qt3, cannot be configured. -- Sources for CGAL component library ''Qt4'' detected Configuring libCGAL_Qt4 -- USING OPENGL_VERSION = ''1.1'' -- USING QT4_VERSION = ''4.8.3'' -- OpenGL include: -- OpenGL libraries: glu32;opengl32 -- OpenGL definitions: -- Qt4 include: D:/QT/include -- Qt4 libraries: optimized;D:/QT/lib/qtmain.lib;debug;D:/QT/lib/qtmaind.li b;optimized;D:/QT/lib/QtOpenGL4.lib;debug;D:/QT/lib/QtOpenGLd4.lib;optimized;D:/ QT/lib/QtGui4.lib;debug;D:/QT/lib/QtGuid4.lib;optimized;D:/QT/lib/QtCore4.lib;de bug;D:/QT/lib/QtCored4.lib -- Qt4 definitions: -DQT_DLL -- moc executable: D:/QT/bin/moc.exe -- uic executable: D:/QT/bin/uic.exe -- Requested component: MPFR -- Requested component: GMP libCGAL_Qt4 is configured -- Sources for CGAL component libraries ''CGAL;Core;ImageIO;Qt3;Qt4'' detected == Generating build files (DONE) == -- Configuring incomplete, errors occurred!


  1. CGAL utiliza las bibliotecas de impulso compartido. Por lo tanto, las bibliotecas como "libboost_thread-vc100-mt-p-1_49.lib" es una biblioteca estáticamente vinculada.

  2. Es porque cmake (utilicé v2.8.9) no puede leer el nombre de las bibliotecas de impulso correctamente. Cuando cambié los nombres de la biblioteca boost_thread-vc100-mt-p-1_49.dll y boost_thread-vc100-mt-p-1_49.lib para boost_thread-vc100-mt-1_49.dll y boost_thread-vc100-mt-1_49 , respectivamente, arregló el problema


Hoy traté de instalar CGAL con Boost 1.57 x64 en Windows y encontré el mismo problema. Instalé boost a través de los binarios de preconstrucción y los archivos .lib que CMake busca están en la lib64-msvc-12.0 . Por lo tanto, agregar BOOST_LIBRARYDIR=.../boost_1_57_0/lib64-msvc-12.0 a las opciones de CMake fue la solución para mí.


Su salida muestra que CMake está buscando las bibliotecas en los siguientes lugares:

D:/program files/boost_1_51/bin/lib D:/program files/boost_1_51/bin/stage/lib D:/program files/boost_1_51/lib D:/program files/boost_1_51/../lib D:/program files/boost_1_51/stage/lib C:/boost/lib C:/boost C:/Program Files (x86)/boost/boost_1_51_0/lib C:/Program Files (x86)/boost/boost_1_51/lib C:/Program Files (x86)/boost/lib C:/Program Files (x86)/boost /sw/local/lib

También muestra que espera que las bibliotecas sean nombradas de cierta manera. Por ejemplo, la versión de lanzamiento de Boost.Thread:

boost_thread-vc100-mt-1_51 boost_thread-vc100-mt boost_thread-mt-1_51 boost_thread-mt boost_thread

Si sus bibliotecas de refuerzo existen en una de las ubicaciones buscadas, entonces es probablemente el nombre de la biblioteca el problema. Puede ajustar el nombre esperado de las libs de impulso estableciendo las variables de CMake apropiadas relevantes para el módulo FindBoost

Por ejemplo, si construyes boost usando bjam con link=static threading=multi entonces en tu CMakeLists.txt antes de find_package(Boost ...) querrás hacer

set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON)

o invocar cmake con -DBoost_USE_STATIC_LIBS=ON -DBoost_USE_MULTITHREADED=ON

Editar

Como @noam ha señalado en los comentarios a continuación, en este caso particular, parece que CGAL requiere las versiones compartidas (dll) de las libs de impulso; pasar -DBoost_USE_STATIC_LIBS=ON en la línea de comando no tiene ningún efecto.


Su sistema (a través de CMAKE) no puede encontrar bibliotecas estáticas reforzadas (archivos .a). Intente incluir la ruta en el archivo CMake donde los archivos .a existen en su sistema. Por ej.

set (BOOST_LIBRARYDIR {Path_here_to_boost_Static_libraries}).

Esto funcionó para mí.


Tuve este error, pero he progresado.

Estaba usando el cmake-gui, luego marqué la casilla de verificación "Avanzado" (entre la casilla de verificación "Agrupado" y el botón "Agregar entrada"), luego marqué la casilla de verificación "CGAL_Boost_USE_STATIC_LIBS".

Es posible que deba presionar "Configurar" un tiempo adicional o dos antes de que se revelen las opciones adicionales.