我正在研究一些 c ++ 的东西,我讨厌创建一个全新的项目只是为了在文件上运行一些东西。
我也不喜欢你在创建项目时如何调用文件main.cpp
。
我只想制作一个包含一些函数或类的文件。创建整个项目并不重要。
我想创建一个文件并将其称为我想要的。只需创建一个我调用的文件,然后编译并运行。
我不想处理整个CMake
事情,只需编译一个文件。
没有项目相关。谢谢。
我知道您可以在visual studio上执行此操作,但我正在使用Clion
处理Mac OS X.
答案 0 :(得分:22)
您可以修改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中选择所需的构建
答案 1 :(得分:9)
我刚才遇到了同样的问题并偶然发现了这个帖子,然后在这个插件中找到了我的解决方案。 这个插件的作用基本上就是用户Waxo自动建议的内容:在CMakeLists.txt中为每个可执行文件添加一行。您只需右键单击编辑器并选择它。我发现它非常有用,主要用于算法竞赛。 希望这会有所帮助:https://plugins.jetbrains.com/plugin/8352-c-c--single-file-execution
干杯!
答案 2 :(得分:0)
对于跨IDE的可移植解决方案,我在scratch()
的开头调用main()
函数,并将exit(0);
放在草稿函数的末尾。
在scratch()
内,您可以根据需要调用其他文件中的内容。我通常只是在那里测试代码段。
答案 3 :(得分:0)
在每个CLion项目中都有一个文件CMakeLists.txt。
要运行单个文件,您将必须在该文件内编写单个命令,即:
add_executable(file_name_without_extension_cpp file_name_with_extension_cpp)
例如:add_executable(CoinChange CoinChange.cpp)
然后单击“重新加载更改”,然后转到“运行”选项,然后选择要运行的文件,然后单击“运行”按钮。您的单个文件将运行。
您的CLion项目中将包含多少个单个文件,您必须对运行每个单个文件执行相同的操作。
答案 4 :(得分:0)
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})
答案 5 :(得分:0)