windows+CMake+mingw 搭建c/c++开发环境

本文教你如何在windows环境下使用CMake和mingw搭建同linux开发一样体验的c/c++开发环境

CMake 安装

CMake 下载

官方下载地址: https://cmake.org/download/

cmake下载页面

选择自己系统(Platform)对应的版本并下载
这里我们选择Windows win64-x64 Installer: Installer tool has changed. Uninstall CMake 3.4 or lower first!

CMake 下载完成

CMake 安装

安装时根据自己系统的安全设置,可能会出现如下对话框,不用担心,直接点击 "运行(R)"

安装时安全警告

CMake Steup

License

必须选择同意,否则不能进入下一步

安装选项
  • 是否添加环境变量,这里我们选择 "Add CMake to the system PATH for all users"
  • 是否创建桌面快捷图标,根据自身情况而定,这个只是创建桌面图标使用方便,并不会对以后的使用造成实质上的影响

安装路径

这里选择自己习惯存放程序的路径,我们这里采取默认值


安装路径

安装最后确认

经过前面的操作终于把需要配置的都配置了,下面该程序自己干活了


安装最后确认

进入安装

真正开始安装的阶段,这一阶段比较耗时,完全取决于电脑自身的配置高低,系统主要是解压文件和写磁盘


安装中

安装完成

共享你,终于将CMake安装完成了


安装完成页面

确认CMake安装

验证CMake是否成功安装,可以调出CMD窗口,输入cmake,瞧瞧系统会给你说什么,如果出现如下窗口,那么恭喜你没有任何问题。

CMake安装好

那么万一出现的是如下内容呢
CMake没安装好

我们一般有如下处理步骤和处理方法:

    1. 确认是新调出CMD窗口再进行的操作
    1. 我们可以手动修改系统的环境变量指定CMake的bin目录位置


      系统环境变量 Path

      确认如图所示内容在Path中配置,如果没有可以手动输入并确定

    1. 待2操作完成后可以再验证,如果解决那么恭喜,如果问题仍存在,那么需要重启系统(一般都能解决了,除非比较低的系统版本可能需要重启)

mingw

mingw 下载

这里给出64系统使用的mingw, https://sourceforge.net/projects/mingw-w64/

mingw下载完成

这里其实是下载的一个安装器,具体的安装是通过运行这个安装器来引导安装的

mingw 安装

开始运行安装器

mingw 安装选项

安装选项

这里需要做出对应的选择,当然完全默认没有任何问题,我们这里采用默认,继续安装

mingw 安装位置

安装位置选择

这里有坑,我们先入坑, 继续安装

mingw 安装中

安装中

安装器需要从网上下载所需要的文件,这一步耗时较长

mingw 安装完成

安装完成

环境变量设置

同CMake的一样,mingw安装完后自动了设置环境变量,你也可以通过运行其安装目录下的mingw-w64.bat来进入运行环境

mingw-w64.bat

验证mingw环境是否设置好,同样新调出CMD窗口,输入gcc命令,出入如下信息则表示安装没有问题,否则请参照CMake配置环境变量的方式来解决。
gcc 命令

CMake+mingw 实例

我们安装完环境后来个实例运行下吧

  • 编写源码文件
    来个宇宙最著名的程序吧
#include <stdio.h>

int main()
{
    printf("hello\n");
    
    return 0;
}
  • 编写CMake文件
cmake_minimum_required(VERSION 3.0)
project(Hello)
set(SOURCE main.cpp)
add_executable(${PROJECT_NAME} ${SOURCE})

  • 生成Make file
mkdir build
cd build
cmake -G"Unix Makefiles" ../

很不幸,这一步会出问题

CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "D:/tmp/build/CMakeFiles/CMakeOutput.log".

意思就是不能生成Unix Makefiles,这是缺少make程序造成的,
解决方法就是找到mingw安装目录下mingw32-make.exe拷贝一份并重命名为make.exe

make

再运行cmake -G"Unix Makefiles" ../

$ cmake -G"Unix Makefiles" ../
-- The C compiler identification is GNU 7.2.0
-- The CXX compiler identification is GNU 7.2.0
-- Check for working C compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/gcc.exe
-- Check for working C compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/c++.exe
-- Check for working CXX compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/c++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: D:/tmp/build

这样就对了

  • 编译
make

什么,又有问题

$ make
/usr/bin/sh: -c: line 0: syntax error near unexpected token `('
/usr/bin/sh: -c: line 0: `C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/make -f CMakeFiles/Makefile2 all'
make: *** [Makefile:84: all] Error 1

还记得前面我们安装mingw时说的坑吗,现在我们需要填坑了,文件就是万恶的C:/Program Files (x86),这也好办,将mingw-w64文件夹复制到一个正常的目录吧,比如直接C:/mingw-w64,然后需要修改环境变量

修改mingw环境变量

$ make
Scanning dependencies of target Hello
[ 50%] Building CXX object CMakeFiles/Hello.dir/main.cpp.obj
[100%] Linking CXX executable Hello.exe
[100%] Built target Hello

  • 运行
$ ./Hello.exe
hello

好了,终于成功了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容