es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Habilitar la recarga en caliente en Visual Studio 2022 con proyectos de C++ CMake.

Tengo un proyecto de CMake C++ que manejo con Visual Studio 2022. He intentado cambiar el código durante la depuración y hacer clic en el botón “recarga en caliente”, pero he obtenido el siguiente mensaje:

Se realizaron ediciones que no se pueden compilar

Y en la ventana de salida de Visual Studio hay el siguiente mensaje:

‘Canvas.cpp’ en ‘miLib.dll’ no se vinculó con Edit y Continue habilitado. Asegúrese de que se habilite la vinculación /INCREMENTAL y que la directiva /EDITANDCONTINUE no se ignore.

¿Cuál es la forma correcta de hacerlo en un CMakeLists.txt, considerando que será un proyecto multiplataforma?

Este es mi CMakeLists.txt:

cmakeminimumrequired (VERSION 3.18)

project (mi-proyecto)

adddefinitions (-DMYPROJECT_EXPORTS)

set (CMAKEINCLUDECURRENTDIR ON)
set (CMAKEAUTOMOC ON)
set (CMAKEAUTOUIC ON)
set (CMAKEAUTORCC ON)

find_package (Qt5 COMPONENTS Core Gui Widgets REQUIRED)

includedirectories (${CMAKECURRENTSOURCEDIR}/../..)

set (PROJECT_SRC
  # Un montón de archivos, es decir.
  Private/Canvas.cpp
  Private/View.cpp
  Private/Scene.cpp
)

addlibrary (${PROJECTNAME} SHARED ${PROJECTSRC})
targetcompilefeatures(${PROJECTNAME} PUBLIC cxxstd17)
targetlinklibraries(${PROJECT_NAME} PUBLIC
  Qt5::Widgets
  Qt5::Gui
)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para habilitar Editar y Continuar en Visual Studio, es necesario agregar la bandera /INCREMENTAL a la línea de comando del enlazador. Puede hacer esto agregando la siguiente línea a su CMakeLists.txt:

    set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/INCREMENTAL")
    

Comments are closed.