【CMake】Win10 + CMake + MinGW 简单使用

爱被打了一巴掌 2022-10-29 07:54 583阅读 0赞

https://blog.csdn.net/zhaotun123/article/details/100042073

1、安装CMake

CMake是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程。CMake可以运行在Windows和Linux环境下,根据配置的编译器不同,生成符合所在操作系统的 Makefile 文件,在Windows下可以生成VS的工程文件系统。
将CMake/bin 目录加入到系统环境变量Path中
在这里插入图片描述
在cmd输入 cmake —verison 可查看cmake是否成功,如成功将显示版本

  1. C:\Users\wt>cmake --version
  2. cmake version 3.13.0-rc3
  3. CMake suite maintained and supported by Kitware (kitware.com/cmake).
  4. C:\Users\wt>

2、安装MinGW

MinGW是一个编译环境,包含了C++代码编译过程中需要的三方库、头文件……用于完成C++源码的编译、链接,类似于早期Windows下的Turbo C。现在的VisualStudio环境集成了编译、连接的功能,所以实际的编译、连接过程对开发者是不可见的,不同的是,VS使用了微软的编译器、连接器。在安装、配置MinGW后,我们就可以在命令行中通过g++命令编译、链接生成可执行文件。
将 MinGW\bin 目录加入到系统环境变量Path中
在这里插入图片描述
在cmd输入 mingw-make —verison 可查MinGW是否成功,如成功将显示版本

  1. C:\Users\wt>mingw32-make --version
  2. GNU Make 3.82.90
  3. Built for i686-pc-mingw32
  4. Copyright (C) 1988-2012 Free Software Foundation, Inc.
  5. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  6. This is free software: you are free to change and redistribute it.
  7. There is NO WARRANTY, to the extent permitted by law.
  8. C:\Users\wt>

3、创建源程序

创建一个hello.cpp的源程序,代码如下

  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. cout << "hello cmake!!!" << endl;
  5. return 0;
  6. }

4、创建CMakeLists.txt文件

创建一个 CMakeLists.txt 文件,内容如下

  1. # CMake 最低版本号要求
  2. cmake_minimum_required (VERSION 2.8)
  3. # 项目信息
  4. project(hello)
  5. # 指定生成目标,编译hello.cpp源程序,生成hello.exe的可执行程序
  6. add_executable(hello hello.cpp)

创建完后,目录文件如下
在这里插入图片描述

5、生成 Makefile

移动到源码所在目录,在cmd中执行命令 cmake -G “MinGW Makefiles” .

  1. F:\CMake\demo-01>cmake -G "MinGW Makefiles" .
  2. -- The C compiler identification is GNU 6.3.0
  3. -- The CXX compiler identification is GNU 6.3.0
  4. -- Check for working C compiler: C:/MinGW/bin/gcc.exe
  5. -- Check for working C compiler: C:/MinGW/bin/gcc.exe -- works
  6. -- Detecting C compiler ABI info
  7. -- Detecting C compiler ABI info - done
  8. -- Detecting C compile features
  9. -- Detecting C compile features - done
  10. -- Check for working CXX compiler: C:/MinGW/bin/g++.exe
  11. -- Check for working CXX compiler: C:/MinGW/bin/g++.exe -- works
  12. -- Detecting CXX compiler ABI info
  13. -- Detecting CXX compiler ABI info - done
  14. -- Detecting CXX compile features
  15. -- Detecting CXX compile features - done
  16. -- Configuring done
  17. -- Generating done
  18. -- Build files have been written to: F:/CMake/demo-01
  • 1

注意,该命令最后是一个点 . 表示当前目录,“MinGW Makefiles”表示指定makefile类型为 MinGW,如果使用vs的话,应指定为“NMake Makefiles”。完成后文件目录为,可以看到已经生成了一个 Makefile 文件。
在这里插入图片描述

6、编译

执行 mingw32-make 命令,对应于 linux 系统的 make 命令

  1. F:\CMake\demo-01>mingw32-make
  2. Scanning dependencies of target hello
  3. [ 50%] Building CXX object CMakeFiles/hello.dir/hello.cpp.obj
  4. [100%] Linking CXX executable hello.exe
  5. [100%] Built target hello

执行后,文件目录如下
在这里插入图片描述
可以看到,已经生成了可执行文件 hello.exe

7、运行

在cmd继续输入 hello.exe 命令

  1. F:\CMake\demo-01>hello.exe
  2. hello word cmake!!!

可以看到,程序得到了正确的输出。

鸣谢:
windows下使用cmake+mingw配置makefile(一)

二、CMake-gui 用户界面使用 cmake

已建好的文件和目录如下:

20210213114300742.png

启动 cmake-gui.exe,选择源代码目录和编译目录:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NpYmlyZW4yMDEx_size_16_color_FFFFFF_t_70

点击 “configure”,配置要生成的makefile类型:选择Qt5自带的Mingw32编译器

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NpYmlyZW4yMDEx_size_16_color_FFFFFF_t_70 1

点击“generate”,生成makefile 文件

20210213115731585.png

cmd控制台到makefile 目录下,运行编译器命令: make,生成hello.exe文件。运行hello.exe成功!

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NpYmlyZW4yMDEx_size_16_color_FFFFFF_t_70 2

三、查看CMake文档和自带的例子学习。

  1. 文档看Tutorial部分,例子源代码见CMake源代码的Help->Tutorial目录 一步一步教你怎么做

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NpYmlyZW4yMDEx_size_16_color_FFFFFF_t_70 3

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NpYmlyZW4yMDEx_size_16_color_FFFFFF_t_70 4

发表评论

表情:
评论列表 (有 0 条评论,583人围观)

还没有评论,来说两句吧...

相关阅读