Windows中像在Linux里一樣使用CMake和make


1. 安裝GCC環境

1.1 安裝MinGW(Minimalist GNU for Windows)

首先下載MinGW,並安裝。安裝完成之后運行MinGW Installer。界面如下。勾選自己需要安裝的包,然后點擊Apply Changes執行。

其中除了一些必須的包之外,mingw32-make是執行make命令需要。

參考教程:https://zhuanlan.zhihu.com/p/66197013

1.2 添加環境變量

之后在系統環境變量的PATH中添加 MinGW\bin 這個位置。在終端中試着用一下gcc gdb等命令確定可行。

 

2. 安裝CMake

在CMake官網上下載並安裝CMake。安裝時注意勾選將路徑添加到環境變量選項。

參考教程:https://gclxry.com/use-cmake-on-windows/

 

3. 使用CMake編譯

與linux下不同的是,使用cmake要加入參數 -G 選擇使用的生成器,直接回車會列出下面的生成器。

 1 Generators
 2   Visual Studio 16 2019        = Generates Visual Studio 2019 project files.
 3                                  Use -A option to specify architecture.
 4 * Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
 5                                  Optional [arch] can be "Win64" or "ARM".
 6   Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
 7                                  Optional [arch] can be "Win64" or "ARM".
 8   Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
 9                                  Optional [arch] can be "Win64" or "ARM".
10   Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
11                                  Optional [arch] can be "Win64" or "ARM".
12   Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
13                                  Optional [arch] can be "Win64" or "IA64".
14   Visual Studio 9 2008 [arch]  = Generates Visual Studio 2008 project files.
15                                  Optional [arch] can be "Win64" or "IA64".
16   Borland Makefiles            = Generates Borland makefiles.
17   NMake Makefiles              = Generates NMake makefiles.
18   NMake Makefiles JOM          = Generates JOM makefiles.
19   MSYS Makefiles               = Generates MSYS makefiles.
20   MinGW Makefiles              = Generates a make file for use with
21                                  mingw32-make.
22   Unix Makefiles               = Generates standard UNIX makefiles.
23   Green Hills MULTI            = Generates Green Hills MULTI files
24                                  (experimental, work-in-progress).
25   Ninja                        = Generates build.ninja files.
26   Ninja Multi-Config           = Generates build-<Config>.ninja files.
27   CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
28   CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
29   CodeBlocks - NMake Makefiles JOM
30   CodeBlocks - Unix Makefiles  = Generates CodeBlocks project files.
31   CodeLite - MinGW Makefiles   = Generates CodeLite project files.
32   CodeLite - NMake Makefiles   = Generates CodeLite project files.
33   CodeLite - Ninja             = Generates CodeLite project files.
34   CodeLite - Unix Makefiles    = Generates CodeLite project files.
35   Sublime Text 2 - MinGW Makefiles
36                                = Generates Sublime Text 2 project files.
37   Sublime Text 2 - NMake Makefiles
38                                = Generates Sublime Text 2 project files.
39   Sublime Text 2 - Ninja       = Generates Sublime Text 2 project files.
40   Sublime Text 2 - Unix Makefiles
41                                = Generates Sublime Text 2 project files.
42   Kate - MinGW Makefiles       = Generates Kate project files.
43   Kate - NMake Makefiles       = Generates Kate project files.
44   Kate - Ninja                 = Generates Kate project files.
45   Kate - Unix Makefiles        = Generates Kate project files.
46   Eclipse CDT4 - NMake Makefiles
47                                = Generates Eclipse CDT 4.0 project files.
48   Eclipse CDT4 - MinGW Makefiles
49                                = Generates Eclipse CDT 4.0 project files.
50   Eclipse CDT4 - Ninja         = Generates Eclipse CDT 4.0 project files.
51   Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
View Code

這里我使用

cmake .. -G "MinGW Makefiles"

可以看到生成了Makefile文件。接着我們輸入mingw32-make.exe就可以生成main.exe了。

這里mingw32-make.exe有些麻煩。我們可以把這個文件重命名成make.exe,就可以直接使用make了。

這里生產的文件是.exe文件,和Linux下的還有所不同。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM