Как создать, скомпилировать и запустить один файл в CLion

Я работаю над некоторыми вещами c++, и я ненавижу создавать совершенно новый проект только для того, чтобы запустить несколько вещей в файле.

Еще мне не нравится, что при создании проекта файл уже называется main.cpp.

Я просто хочу сделать один файл с несколькими функциями или классами. Это не настолько важно, чтобы создать целый проект.

Я хочу создать файл и назвать его так, как я хочу. Просто создайте файл, который я называю, затем скомпилируйте и запустите.

Я не хочу иметь дело со всей этой штукой CMake, просто скомпилирую ОДИН файл.

Не связанный с проектом. Спасибо.

Я знаю, что вы можете сделать это в Visual Studio, но я работаю над Mac OS X, используя Clion.


person Rishi Desai    schedule 24.08.2015    source источник
comment
Назовите меня старой школой, но я просто делаю это из командной строки: g++ -std=c++11 -o target target.cpp, где цель — это имя программы, которую я создаю.   -  person paddy    schedule 24.08.2015
comment
Вы можете изменить файл CMakeLists.txt. Вот реализация. stackoverflow.com/a/48729058/8890521   -  person Vignesh Pillay    schedule 11.02.2018


Ответы (6)


Вы можете изменить 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.

person Waxo    schedule 24.08.2015

У меня только что был тот же вопрос, и я наткнулся на эту тему, а затем нашел свое решение в этом плагине. Что этот плагин делает, в основном то, что пользователь Waxo предложил автоматически: добавляет одну строку в CMakeLists.txt для каждого исполняемого файла для вас. Вам просто нужно щелкнуть правой кнопкой мыши в редакторе и выбрать его. Я нашел его довольно полезным и использую его в основном для соревнований по алгоритмам. Надеюсь, это поможет: https://plugins.jetbrains.com/plugin/8352-c-c--single-file-execution

Ваше здоровье!

person sabak    schedule 23.03.2017

Внутри каждого проекта CLion есть файл CMakeLists.txt.
Чтобы запустить один файл, вам нужно будет написать в этом файле одну команду, а именно:

add_executable(file_name_without_extension_cpp  file_name_with_extension_cpp)

Например: add_executable(CoinChange CoinChange.cpp)

Затем нажмите «Обновить изменения», затем перейдите к опции «Выполнить», затем выберите файл, который вы хотите запустить, и нажмите кнопку «Выполнить». Ваш единственный файл будет запущен.

Сколько отдельных файлов будет в вашем проекте CLion, вам придется выполнять одно и то же действие для запуска каждого отдельного файла.

person Ruman_bhuiyan    schedule 16.11.2019

  1. установить плагин внутри CLion C/C++​ +​ Single File Execution
  2. перейдите к тому файлу, который вы хотите выполнить, и щелкните правой кнопкой мыши, затем выберите последний вариант, т.е. добавьте один исполняемый файл c/cpp
  3. перейдите к опции запуска или нажмите Alt + shift + f10 и выберите файл, который вы хотите запустить
person Chandrakant shinde    schedule 25.11.2020

Для переносимого решения через IDE я вызываю функцию scratch() в начале моей main() и помещаю exit(0); в конец функции нуля.

Внутри scratch() вы можете вызвать что-то в другом файле, если хотите. Обычно я просто тестирую фрагменты там.

person Koz    schedule 28.04.2019

CLion основан на CMake. Поэтому, если вы не хотите использовать CMake, вы можете использовать другие редакторы, такие как Sublime Text.

Но простой скрипт CMake может решить проблему.

Следующий сценарий CMake автоматически добавляет cpp файлов в текущем каталоге и его подкаталогах к исполняемым файлам (имя файла в качестве целевого имени).

cmake_minimum_required(VERSION 3.15)
project(MyApp)

set(CMAKE_CXX_STANDARD 17)

file(GLOB APP_SOURCES *.cpp */*.cpp)
foreach (testsourcefile ${APP_SOURCES})
    get_filename_component(testname ${testsourcefile} NAME_WE)
    message("${testname}")
    add_executable(${testname} ${testsourcefile})
endforeach (testsourcefile ${APP_SOURCES})
person ezheng    schedule 10.09.2020