CLion和VS编辑好的cpp文件的互用问题

时间:2024-03-26 20:41:39

最近在捣鼓C++的IDE。偶然意识到,使用CLion编辑好的C++文件无法在VS中正常执行,反之亦然。这给我带来了很大的困惑,网上的方法是把C程序赋值粘贴,在各自的环境下新建工程、新建源文件来解决,虽然确实有效,但是总感觉不是很科学。

仔细思考以后,发现这个问题的本质其实是CLion和VS这两个IDE在处理C文件时候的逻辑是不一样的(不知道可不可以这样描述)。以下是我对这个问题的理解:

(1)首先,不管是CLion还是VS,在执行C文件的时候,都要保证整个C文件属于一个project,否则是无法执行的。

(2)但是,CLion和VS建立project的逻辑是不一样的。

VS在建立project时,是直接生成了一个.sln文件,VS直接打开这个.sln文件即可打开整个工程,这样程序就可以正常运行了。

而CLion在建立project时并不会生成.sln文件,也无法识别.sln文件。这就导致CLion无法直接打开使用VS编辑好的工程。

CLion在新建工程时,会生成一个CMakelists.txt文件:
CLion和VS2015编辑好的cpp文件的互用问题
如图,这个untitled3工程下包含了一个main.cpp的源文件,在CMakeList.txt中清晰地标明了它们之间的从属关系。

因此,我猜想,当CLion打开一个c++文件时后台的逻辑流程是这样的:打开C++文件——>寻找这个文件所属文件夹中是否有CMakeLists.txt文件——>如果有,并且和打开的这个C++文件关联,就调用加载的MingGW编译器——>右上角的绿色三角形亮起,可以执行。

所以,当我们直接打开VS制作的.cpp文件时,文件夹中并没有CLion支持的CMakeList.txt文件,CLion无法识别这个工程,自然不能编译。网络上很多在使用CLion时发现装在好的编译器不能使用,都是出自这个原因。

因此,网上说的新建一个CLion工程,然后把源代码复制粘贴过去,当然就解决了这个问题。

但是这种方法过于麻烦,并不科学,仔细观察CLion界面以后我发现有这样一个选项:
CLion和VS2015编辑好的cpp文件的互用问题
就是这个New CMake Project from Source…(从源文件中生成新的CMake工程)。

尝试选择单独存放在某个文件夹中的.cpp文件:
CLion和VS2015编辑好的cpp文件的互用问题
接着:
CLion和VS2015编辑好的cpp文件的互用问题
点击OK后,顺利生成了CMakeLists:
CLion和VS2015编辑好的cpp文件的互用问题
这时,这个cpp文件已经被放在了这个工程中,CLion开始调用编译器进行编译:
CLion和VS2015编辑好的cpp文件的互用问题
进行完这一步可以发现,在项目文件夹下生成了可执行文件,于是三角形亮起:
CLion和VS2015编辑好的cpp文件的互用问题
显然,我们根据项目名称和cpp文件名字,可以按照格式,自己去写CMakelists文件,这样在CLion就可以识别这个工程啦。

以上就是在思考CLion和VS之间文件互通的一点理解和体会,采用哪个IDE编程固然可以按照自己的喜好选择,但是不同IDE平台之间的互通是比较麻烦的,需要找到更简单直接的方式来解决这些问题。