1. cmake在windows下使用


cmake在windows下使用

目录

简介

首先是:什么是GCC?GCC是一种编译工具,可以实现预编译、编译、汇编、链接整个过程,这整个过程将高级语言翻译成了机器语言。但是,GCC是针对于LINUX的,在windows中并没有,因为微软有自己的开发,叫做MSVC,当然,GCC后来在windows也有,叫做MinGW,MinGW就是GCC在windows下的名称,我们使用它也可以像是GCC之于Linux一样。

其次,为什么会有cmake?当我们的文件很大时,使用GCC是不方便的,所以有了make,make是一个构建生成器,通过写makefile文件来指定特定的项目构建工程,但make也有很多不足,像写makefile时,大工程下是很复杂的,往往改一点,makefile就要改很多地方。于是,就出现了cmake,cmake可以通过写CmakeList.txt,然后通过make,将该文件翻译为之前需要通过写makefile实现的作用,但是却没有makefile那样的副作用。

cmake和gcc用法

怎么使用cmake呢?

  1. 写CmakeList.txt,在已建立的工程下,写对应的CmakeList.txt,涉及多个目录就需要多个CmakeList.txt,之间有相互关联。

  2. 在终端写cmake .. -Dproj= -G “MinGW Makefiles”

.. 表示当前目录的上一级,这里具体要看CmakeList.txt的位置,也就是你的文件放置形式。可能你的Cmakelist文件跟你的main文件不再同一级目录,也可能在同一级目录。
“MinGW Makefiles” 表示是使用MinGW,因为是在windows下,是默认有MVSC的,所以不声明的话基本上就是使用MVSC

  1. 之后再终端写 mingw32-make
    如果时在Linux下,直接写make就行,但是windows下面没有make,mingw32-make是Mingw中一起携带的,你也可以将之重命名为make。

这样,就是cmake的用法,之后就会产生一个可执行的exe文件,可以通过./main来运行,./表示当前目录,所以具体要看生成的main.exe文件的位置。

注意:这里是用到了cmake去构建C/C++项目,再用gcc编译生成文件。与vscode的插件是无关的,也就是说不用vscode提供的右上角编译运行按钮。vscode仅作为编写代码的平台。

推荐文章:

捋一捋gcc/g++/MingW/MSVC与make/CMake的关系

Win10 + CMake + MinGW

CMake 入门实战

CMake入门实战(在C中的Test_C已实现)中针对于多目录多文件的代码可以C++中的代码相结合参考,将多目录下的文件变成静态库或者动态库是一个方法。

CMake实践这本书的前部分——基础使用

CMake实践这本书的后部分——静态库和动态库

思考

  1. 使用cmake .. -Dproj= -G “MinGW Makefiles”出现:
1
2
3
4
5
6
7
8
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:3 (project):
The CMAKE_C_COMPILER:

cl

is not a full path and was not found in the PATH. ?

分析:这是系统环境变量没有包含gcc路径的原因。添加gcc路径即可。

  1. 使用vscode插件之间右上角编译运行按钮,有时可以编译,有时会出现找不到该文件的错误?

分析:该插件仅限于单个main.c文件时使用,可以编译运行;但是当使用多文件且有多个目录时,便会出错,这是就要使用cmake和gcc来实现编译运行过程。


Author: Zhang Xing
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Zhang Xing !
  TOC