cmake lemon-graph-library

Error de CMake: OBJETIVOS no se otorga DESTINO DE BIBLIOTECA para el destino de biblioteca compartida



lemon-graph-library (3)

Conseguí esto ... Otra razón por la que sucede esto es cuando creas una biblioteca compartida

add_library ($ {NAME} FUENTES COMPARTIDAS)

luego, cuando Cmake llega al comando de instalación en la plataforma Windows, se queja de estos errores, la solución es usar RUNTIME en lugar de LIBRARY, como

if(WIN32) install(TARGETS ${NAME} RUNTIME DESTINATION path) else() install(TARGETS ${NAME} LIBRARY DESTINATION path) endif()

Al crear un proyecto de código abierto con CMake (en mi caso, era la biblioteca de gráficos de limón), recibí este error cuando intenté crear bibliotecas compartidas mediante -DBUILD_SHARED_LIBS=1 :

TARGETS given no LIBRARY DESTINATION for shared library target

¿De dónde viene este error y cómo lo arreglo?


Después del DESTINATION , debe tener bin , lib , include .

instalar lib o bin

install(TARGETS snappy EXPORT SnappyTargets # RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} # DESTINATION error RUNTIME DESTINATION bin ${CMAKE_INSTALL_BINDIR} # should add bin or other dir LIBRARY DESTINATION lib ${CMAKE_INSTALL_LIBDIR} # ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR # DESTINATION error ARCHIVE DESTINATION lib ${CMAKE_INSTALL_LIBDIR} # should add lib )

Por ejemplo, instale el archivo .h :

install( FILES "${PROJECT_SOURCE_DIR}/test_hard1.h" "${PROJECT_BINARY_DIR}/config.h" # DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # error install FILES given no DESTINATION! # add include after DESTINATION, then it works DESTINATION include ${CMAKE_INSTALL_INCLUDEDIR} )

vea https://cmake.org/cmake/help/v3.0/command/install.html para más detalles:

install(TARGETS myExe mySharedLib myStaticLib RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/static) install(TARGETS mySharedLib DESTINATION /some/full/path)


En mi CMakeLists.txt , mi comando INSTALL no tenía ningún parámetro LIBRARY.

Cambiando de esto:

INSTALL( TARGETS lemon ARCHIVE DESTINATION lib COMPONENT library )

a esto:

INSTALL( TARGETS lemon ARCHIVE DESTINATION lib LIBRARY DESTINATION lib # <-- Add this line COMPONENT library )

arreglado mi problema