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)