在不做任何配置情况下,Clion工程下只能有一个main()函数,新建多个cpp会导致报main()函数重复定义的错误,所以默认情况下无法在一个工程下编译多个cpp文件。

要想实现单文件编译,或者说编译过多个cpp文件,有两种解决方法:

  1. 对CLion进行配置(推荐)
  2. 手动配置CMakeLists.txt
  3. 安装插件

    对CLion进行配置

1.配置External Tools

img
img

首先从setting里找到External Tools,点红圈的+号,如果你之前没有添加过快捷键,这里应该是空的,我已经添加好了。

img
img
img
img

Program里面是你自己mingw中bin文件夹下g++程序的路径,找到自己的就好(如我的是C:mingw17MinGWbing++.exe)

其他地方完全按照图里的填写。

2 配置快捷键

img
img

3.测试

img
img

创建一个工程,添加一个c++源文件,命名为a.cpp,写一点打印a!的代码。

先按Alt+Z(编译)

img
img

再按Alt+X(运行)

img
img

出现上面的结果就是成功了。这样已经很方便了,但是还是不完美,下面的方法可以达到一键编译且运行的效果。(上面的内容基本上是copy上面提到的博文的,下面的是我的原创)

1配置

点击右上方绿色三角左边的方框,下拉的Edit Configurations

img
img

点击左上角的+号

img
img

首先是Target, 点击Configure Custom Build Targets

img
img

点击+号,右边第一个选MinGW,第二个下拉选择我们之前配置的C++编译,Clean可以不用管

img
img

完了点击Ok

img
img

然后是Excutable, 下拉点击Select other

img
img

选择工程目录下,刚刚用上面方法生成的a.exe文件

img
img

最后点击Ok,完成。

img
img

2测试

首先选中我们刚才配置的 “编译运行 自定义”, 然后点击绿色三角形运行

img
img

成功。

换一个文件,b.cpp,点击运行

img
img

成功!

手动配置CMakeLists.txt

img
img

像这样,为每个cpp文件制定唯一的编译器,编译运行的时候,选择相应的编译器即可。

img
img

更简单的方法是,第一次运行的时候使用快捷键Ctrl+Shift+F10,会自动帮你选择对应的编译器,之后就可以使用Shift+F10直接编译运行了,这个和在Pycharm中是一样的。

安装插件

在Clion中可以像在vsc中一样直接安装插件,只不过Clion中插件商城隐藏在了setting中。

为了解决单文件编译问题,有人专门为Clion写了一款插件,实现单文件编译,名为C/C++ Single File Execution plugin,安装方法:settings-Plugins。

该插件只是把手动配置CMakeLists.txt写成了插件形式,自动配置CMakeLists.txt的快捷键Ctrl+Shift+Alt+E,或者在编辑区右键选择Add execution for single c/c++ file。

编译运行方式同上。