2010-04-13 7 views
3

Nous passons des projets Visual Studio gérés manuellement à la plateforme croisée cmake.Débogage/Exécution d'exécutables dans le projet cmake/Visual Studio

Nous avions l'habitude d'ouvrir un fichier de solutions, de sélectionner un projet en tant que "cible de démarrage" et d'appuyer sur Ctrl + F5 ou F5 pour déboguer ou exécuter.

Maintenant, cmake a ce concept d'installation. Cela m'oblige à exécuter la cible d'installation. Mais le projet d'installation n'a aucun fichier exécutable défini, donc il ne peut pas être utilisé pour démarrer le débogage.

Si je définis mon projet exécutable comme cible de démarrage, l'installation ne sera pas exécutée, donc je ne peux pas déboguer.

Je suis sûr qu'il existe une meilleure façon de procéder.

Des idées?

+0

Ce problème nous rend fou aussi. Une amélioration * légère * consiste à définir le projet 'INSTALL' comme valeur par défaut via l'option" Définir comme projet de démarrage "dans le menu contextuel. Cela semble tellement fondamental qu'il y a * eu * pour être un meilleur moyen. – metasim

Répondre

5

Vous ne devez exécuter la cible INSTALL que si vous souhaitez distribuer votre application. Si vous sélectionnez un projet qui crée un exécutable (il a donc une instruction ADD_EXECUTABLE dans le fichier CMakeLists.txt), il doit être exécuté avec F5 ou Ctrl + F5.

Il se peut que votre exécutable nécessite des bibliothèques partagées qui sont construites dans un répertoire séparé. Vous pouvez forcer la compilation de tous les exécutables et bibliothèques dans le même répertoire avec les commandes CMake suivantes dans votre fichier CMakeLists.txt principal.

SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/Bin/${CMAKE_BUILD_TYPE} CACHE PATH "Library output path") 
    SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/Bin/${CMAKE_BUILD_TYPE} CACHE PATH "Executable output path") 

Si vous voulez plus de contrôle sur la commande qui doit être exécutée lors du débogage jeter un oeil à cette question: How to Set Path Environment Variable using CMake and Visual Studio to Run Test

+0

Est-ce toujours la solution recommandée pour le problème ou a-t-il été prolongé avec une solution intégrée dans l'intervalle? – Knitschi

Questions connexes