web-dev-qa-db-fra.com

Comment créer, compiler et exécuter un seul fichier dans CLion

Je travaille sur des trucs c ++ et je déteste devoir créer un tout nouveau projet juste pour exécuter quelques choses sur un fichier.

Je n'aime pas non plus comment, lorsque vous créez un projet, un fichier est déjà appelé main.cpp.

Je veux juste faire un seul fichier avec quelques fonctions ou classes. Ce n'est pas assez important pour créer un projet entier.

Je veux créer un fichier et l'appeler comme je veux. Créez simplement un fichier que j'appelle, puis compilez et exécutez.

Je ne veux pas m'occuper de tout CMake, il suffit de compiler UN fichier.

Aucun projet lié. Je vous remercie.

Je sais que vous pouvez le faire sur Visual Studio, mais je travaille sur un mac OS X en utilisant Clion.

28
Rishi Desai

Vous pouvez modifier le CMakeLists.txt

Voici un exemple:

cmake_minimum_required(VERSION 3.3)
project(test_build)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(BUILD_1 main)
set(SOURCE_FILES_1 main.cc) //where main.cc is your first main/program
add_executable(${BUILD_1} ${SOURCE_FILES_1})

set(BUILD_2 main_2)
set(SOURCE_FILES_2 main_2.cc) //where main_2.cc is your second main/program
add_executable(${BUILD_2} ${SOURCE_FILES_2})

Ou utilisez un test (version poubelle):
add_executable(foo bar.cc)

Après cela, vous pouvez choisir la version que vous souhaitez dans CLion

22
Waxo

J'ai juste eu la même question et suis tombé sur ce fil et j'ai trouvé ma solution dans ce plugin. Ce que fait ce plugin est essentiellement ce que l'utilisateur Waxo a suggéré automatiquement: ajoute une seule ligne dans CMakeLists.txt pour chaque fichier exécutable pour vous. Il vous suffit de faire un clic droit dans l'éditeur et de le sélectionner. Je l'ai trouvé assez utile et je l'utilise principalement pour les compétitions d'algorithmes. J'espère que cela vous aide: https://plugins.jetbrains.com/plugin/8352-c-c--single-file-execution

À votre santé!

10
sabak

Pour une solution portable sur les IDE, j'appelle une fonction scratch() au début de ma main() et je mets exit(0); à la fin de la fonction scratch.

Dans scratch(), vous pouvez appeler quelque chose dans un fichier différent si vous le souhaitez. Je teste généralement des extraits de code là-dedans.

0
Koz