Как создать, скомпилировать и запустить один файл в CLion
Я работаю над некоторыми файлами С++, и мне не нравится создавать совершенно новый проект, просто чтобы запустить несколько вещей в файле.
Мне также не нравится, как при создании проекта файл уже называется main.cpp
.
Я просто хочу создать один файл с несколькими функциями или классами. Это не важно для создания целого проекта.
Я хочу создать файл и называть его тем, что хочу. Просто создайте файл, который я вызываю, затем скомпилируем и запустите.
Я не хочу иметь дело со всей темой CMake
, просто скомпилируйте ОДИН файл.
Не связано с проектом. Спасибо.
Я знаю, что вы можете сделать это на visual studio, но я работаю над Mac OS X, используя Clion
.
Ответы
Ответ 1
Вы можете изменить CMakeLists.txt
Вот пример:
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})
Или используйте тест (версия мусора):
add_executable(foo bar.cc)
После этого вы можете выбрать сборку, которую хотите в CLion
Ответ 2
У меня был тот же вопрос и наткнулся на этот поток, а затем нашел свое решение в этом плагине.
То, что делает этот плагин, в основном состоит в том, что пользователь Waxo предложил автоматически: добавляет одну строку в CMakeLists.txt для каждого исполняемого файла для вас. Вам просто нужно щелкнуть правой кнопкой мыши в редакторе и выбрать его. Я нашел его довольно полезным и использовал его в основном для конкурсов алгоритмов.
Надеюсь, что это поможет: https://plugins.jetbrains.com/plugin/8352-c-c--single-file-execution
Ура!
Ответ 3
Для переносимого решения между IDE я вызываю функцию scratch()
в начале функции main()
и помещаю exit(0);
в конце функции нуля.
Внутри функции scratch()
вы можете вызывать что-то в другом файле, если хотите. Я обычно просто проверяю фрагменты там.