Configuré CFLAGS en CMake por CMAKE_C_FLAGS. ¿Es algo así para configurar LDFLAGS?CMake: ¿Cómo configurar los LDFLAGS en CMakeLists.txt?
Respuesta
Depende un poco de lo que quiere:
A) Si desea especificar qué bibliotecas vincular, se puede utilizar para encontrar find_library libs y luego usar link_directories y target_link_libraries a.
Por supuesto, es a menudo vale la pena el esfuerzo de escribir un buen guión find_package, que muy bien añade bibliotecas "importados" con add_library(YourLib IMPORTED) con ubicaciones correctas, y la plataforma/construcción pre- y sufijos específicos. Luego puede simplemente referirse a 'YourLib' y usar target_link_libraries.
B) Si desea especificar marcadores del enlazador en particular, p. Ej. '-mthreads' o '-Wl, - export-all-symbols' con MinGW-GCC, puede usar CMAKE_EXE_LINKER_FLAGS. También hay dos banderas similares pero sin papeles para los módulos, compartidos o bibliotecas estáticas:
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
Mira:
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
Puede especificar banderas de engarce en target_link_libraries.
Para enlazarse contra las librerías ver Andre's answer.
Para banderas enlazador - los siguientes 4 variables: CRealice
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
se puede manipular fácilmente para diferentes configuraciones (depuración, liberación ...) con el ucm_add_linker_flags macro de ucm
si quieres agregar una marca a cada enlace, por ejemplo -fsanitize=address
, entonces no recomendaría usar CMAKE_*_LINKER_FLAGS
. Incluso con todos ellos configurados, aún no usa la bandera al vincular un framework en OSX, y tal vez en otras situaciones. En su lugar use link_libraries()
:
add_compile_options("-fsanitize=address")
link_libraries("-fsanitize=address")
Esto funciona para todo.
¿Es necesario add_compile_options si solo quiero establecer indicadores de enlazador? – thomastiger
No ............. – Timmmm
Esa es, por ahora, la mejor y más limpia forma de hacerlo. – Salamandar
- 1. CMake: cómo usar el comando bash en CMakeLists.txt
- 2. Cómo configurar CFLAGS y LDFLAGS para compilar pycrypto
- 3. cmake: Selección de un generador dentro de CMakeLists.txt
- 4. Trabajar con CMake y Xcode: mantener los cambios del proyecto cuando se modifique CMakeLists.txt
- 5. Cómo agregar una ruta a LDFLAGS
- 6. Cómo configurar CMake para crear una aplicación para el iPhone
- 7. Anulando una opción predeterminada (...) valor en CMake desde un padre CMakeLists.txt
- 8. CMake ... ccmake or cmake?
- 9. Biblioteca múltiple CMakeLists.txt
- 10. CMakeLists.txt archivos para múltiples bibliotecas y ejecutables
- 11. Establecer ruta en CMake (C++, ImageMagick)
- 12. CMAKE inherit definition from parent
- 13. CMake cómo crear correctamente las dependencias entre los objetivos
- 14. Cómo configurar CMake para construir una biblioteca para el iPhone
- 15. Ejecutando CMake en Windows
- 16. CMake ubicación ejecutable
- 17. cmake variable scope, add_subdirectory
- 18. Donde poner el binario en CMake?
- 19. Cadena CMAKE opciones
- 20. equivalente "make dist" en CMake
- 21. Cómo se agregan las bibliotecas de impulso en CMakeLists.txt
- 22. C++ CMake (agregue archivos no construidos)
- 23. ¿Cómo establecer la variable global en una función para cmake?
- 24. cmake no encuentra Qt4
- 25. Trabajar con múltiples proyectos en CMake
- 26. Uso de boost.asio en cMake
- 27. cmake mejor práctica
- 28. ¿Cómo generar un encabezado en la fuente con cmake?
- 29. Cómo incluir bibliotecas de OpenCV en CMake Makefile
- 30. Cómo detectar la disponibilidad de sse en CMake
Y CMAKE_STATIC_LINKER_FLAGS para la biblioteca estática: http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_STATIC_LINKER_FLAGS.html – Cofyc
Sólo un enlace a la reciente descripción CMake3.0: [CMAKE_EXE_LINKER_FLAGS] (https: //cmake.org/cmake/help/v3.0/variable/CMAKE_EXE_LINKER_FLAGS.html). Tenga en cuenta que los indicadores MODULE/SHARED/STATIC ya están documentados (aunque bastante vagamente). – yman
¿Para qué sirve la bandera del Módulo? – CMCDragonkai