cmake安装
-
官网下载地址Download | CMake
我这次选择的是免安装程序。Windows x64 ZIP,这样就不需要安装了,避免安装后生成一些临时文件,只需要添加一个环境变量就可以直接使用了。 官网下载地址特别慢,可以在这个地址下载Index of /files (cmake.org),稍微快一些。
-
设置环境变量
把bin目录添加到path环境变量
-
命令行测试
C:\Users\jun>cmake --version
cmake version 3.22.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
C:\Users\jun>
mingw安装
- 官网下载地址MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net
!!!!!!!!!!!!!!!!不要直接点击上图的download那个红色按钮!!!!!!!!!!!!!!!!!!!!!!!!
网页滑到文件下面如下图:
普通windows系统电脑选择x86_64-win32-sjij -
下载后解压到本地任意目录,里面的文件目录如下图:
-
设置环境变量
把上图的bin目录添加到path环境变量
-
打开命令行测试
C:\Users\jun>gcc --version
gcc (x86_64-win32-sjlj-rev0, Built by MinGW-W64 project) 8.1.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\Users\jun>g++ --version
g++ (x86_64-win32-sjlj-rev0, Built by MinGW-W64 project) 8.1.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\Users\jun>
测试c语言编译
新建测试工程文件
- 新建一个文件夹test_c,目录结构如下:
-test_c-|
|---build
|---src-|
|---main.c
|---CMakeLists.txt
- CMakeLists.txt内容如下:
set(PROJECT CProject_main)
message("Making ${PROJECT} ...")
cmake_minimum_required(VERSION 3.16)
project(${PROJECT})
aux_source_directory(./src SRC_FILE)
add_executable(run ${SRC_FILE})
message("Make ${PROJECT} ok, please execute run")
- main.c内容如下:
#include <stdio.h>
int main()
{
printf("hello world ,this is a c program in win10\n");
return 0;
}
打开命令行
参考【CMake】Win10 + CMake + MinGW 简单使用_zhaotun123的博客-CSDN博客_cmake mingw
在build目录执行cmake命令
cmake .. -G "MinGW Makefiles"
命令解释:
- cmake: cmake执行命令,生成makefile文件
- ..:CMakeLists.txt路径
- -G:指定makefile类型
-
"MinGW Makefiles":mingw的makefile类型
执行结果如下:
PS D:\Programs\projects\win_c\test_c> ls
目录: D:\Programs\projects\win_c\test_c
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/1/23 18:33 build
d----- 2022/1/23 18:32 src
-a---- 2022/1/23 18:33 245 CMakeLists.txt
PS D:\Programs\projects\win_c\test_c> cd .\build\
PS D:\Programs\projects\win_c\test_c\build> dir
PS D:\Programs\projects\win_c\test_c\build> cmake .. -G "MinGW Makefiles"
Making CProject_main ...
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/Programs/tools/mingw64/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/Programs/tools/mingw64/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Make CProject_main ok, please execute run
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Programs/projects/win_c/test_c/build
PS D:\Programs\projects\win_c\test_c\build>
在build目录下执行make命令
mingw32-make
命令行解释:
-
mingw32-make: mingw编译器的make命令,相当于Linux下的make
执行结果如下
PS D:\Programs\projects\win_c\test_c\build> mingw32-make
[ 50%] Building C object CMakeFiles/run.dir/src/main.c.obj
[100%] Linking C executable run.exe
[100%] Built target run
PS D:\Programs\projects\win_c\test_c\build>
运行可执行程序
命令行运行run.exe结果如下
PS D:\Programs\projects\win_c\test_c\build>
目录: D:\Programs\projects\win_c\test_c\build
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/1/23 18:42 CMakeFiles
-a---- 2022/1/23 18:36 16427 CMakeCache.txt
-a---- 2022/1/23 18:36 1603 cmake_install.cmake
-a---- 2022/1/23 18:36 5372 Makefile
-a---- 2022/1/23 18:42 54022 run.exe
PS D:\Programs\projects\win_c\test_c\build> .\run.exe
hello world ,this is a c program in win10
PS D:\Programs\projects\win_c\test_c\build>