visual studio proyecto para modo este depurar depuracion debug configuracion compilar compilacion cmake_build_type cambie c++ windows cmake

c++ - studio - ¿Vinculando bibliotecas diferentes para las versiones Debug y Release en Cmake en Windows?



para depurar este modulo cambie la configuracion de compilacion del proyecto a modo de depuracion (2)

De alguna manera, la respuesta de @Mike Willekes hizo que CMake se vinculara en el mismo destino, tanto la versión como la depuración para mí :(

Solo conseguí este trabajo configurando ambas configuraciones en una línea, como lo sugirió @sakra en una pregunta relacionada , y lo hice para cada biblioteca que necesitaba vincularse:

target_link_libraries ( app debug ${Boost_FILESYSTEM_LIBRARY_DEBUG} optimized ${Boost_FILESYSTEM_LIBRARY_RELEASE} ) target_link_libraries ( app debug ${Boost_LOG_LIBRARY_DEBUG} optimized ${Boost_LOG_LIBRARY_RELEASE} ) target_link_libraries ( app debug ${Boost_PROGRAM_OPTIONS_LIBRARY_DEBUG} optimized ${Boost_PROGRAM_OPTIONS_LIBRARY_RELEASE} ) # ...

Así que tengo una biblioteca que estoy compilando y necesito vincular diferentes elementos de terceros dependiendo de si se trata de la compilación de debug o release (específicamente las versiones de lanzamiento o debug de esas bibliotecas). ¿Hay una manera fácil de hacer esto en Cmake?

Editar: Debo tener en cuenta que estoy usando el estudio visual


Según la documentación de CMake :

target_link_libraries(<target> [lib1 [lib2 [...]]] [[debug|optimized|general] <lib>] ...)

Una palabra clave "depurar", "optimizada" o "general" indica que la biblioteca que se encuentra inmediatamente después debe usarse solo para la configuración de compilación correspondiente.

Así que deberías poder hacer esto:

add_executable( MyEXE ${SOURCES}) target_link_libraries( MyEXE debug 3PDebugLib) target_link_libraries( MyEXE optimized 3PReleaseLib)