转载自:https://blog.csdn.net/isscollege/article/details/78038921?locationNum=8&fps=1

1 工具介绍

作为一款执行效率较高的面向对象语言,C++常被用于服务端后台、平台软件的开发,而现在的服务端一般运行在Linux/Unix 环境下,对于习惯在Windows开发环境下工作的C/C++程序员,学习在Linux环境下完成编码、编译、调试可能需要较长的时间,在各位熟悉Linux开发环境下,不妨现在熟悉的Windows环境下先完成代码的编辑和编译,这时我们就需要搭建Windows下的Linux编译环境。
Windows环境下的Linux编译环境需要安装MinGW,可以粗略理解为可以运行在Windows中的Linux编译器。当我们需要编译一个多文件工程的时候,为方便起见,我们需要编写工程对应的(若干)个Makefile文件(当然可以直接使用g++依次编译多个文件并链接生成目标文件),而Makefile的编写也是需要学习的,很庆幸的是,我们有CMake工具,可以根据我们的工程结构,自动生成Makefile文件,下面我们来了解这两个工具:
  • 1
  • 2
  • 3

1.1 MinGW

MinGW 是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时库。简单说,MinGW是一个编译环境,包含了C++代码编译过程中需要的三方库、头文件……用于完成C++源码的编译、链接,类似于早期Windows下的Turbo C。现在的VisualStudio环境集成了编译、连接的功能,所以实际的编译、连接过程对开发者是不可见的,不同的是,VS使用了微软的编译器、连接器。在安装、配置MinGW后,我们就可以在命令行中通过g++命令编译、链接生成可执行文件。

1.2 CMake

CMake是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程。CMake可以运行在Windows和Linux环境下,根据配置的编译器不同,生成符合所在操作系统的Makefile文件,在Windows下可以生成VS的工程文件系统。

2 工具安装配置:

2.1 MinGW

2.1.1 安装

从MinGW官网(MinGW Installer)获取MinGW安装文件,双击开始安装:

  • 安装目录可以自己指定,但必须记录,以便后续配置环境变量

  • 安装工具开始下载需要的安装文件

  • “Basic Setup”中的所有包建议选择,其他的根据自己需要选择

  • 安装过程中,部分包可能下载失败,不用关注,等完成后再更新一次即可,如果更新也失败可换时间重试,或者等到后续用到的时候再下载。

2.1.2 配置

在设置Windows环境变量,在Path中增加MinGW的bin目录

注意:
- 启动Windows命令行,执行g++ –version命令,如果能查到g++版本,则说明配置正确。

- 如果命令执行失败,则可能是G++安装失败,或者环境变量设置不生效,可以重新安装或者重新配置环境变量后重新启动即可。

2.2 CMake

2.2.1 安装

从CMake官网(CMake Installer)取CMake安装文件,双击后开始安装:

  • 安装过程中建议参照以下配置设置环境变量:

2.2.2 配置

CMake在安装过程中已经配置了环境变量,所以不需要手动配置。安装完成后,可以在命令行中执行命令cmake –version,如果安装配置正确,则会显示下列信息:

3. 使用MinGW在Windows环境下编译C++代码并生成可执行文件:

3.1 源代码所在目录结构:

3.2 建立CMakeList文件:

3.3 启动GUI版CMake工具,生成Makefile:

  • 配置编译目录——源码根目录:
  • 点击Config按钮,配置编译器:
  • 点击Generate按钮,生成makefile:

3.4 执行Make命令,生成可执行文件:


4. 常见错误:

4.1 在CMake界面点击Config,提示工程文件无效:


此时可能是CMakeList.txt不存在或者命名错误,请手动建立改文件,文件名大小写敏感,建立文件后,请重新启动CMake。

4.2 CMakeList.txt中存在语法错误:


图示在CMakeList.txt文件第10行,文件路径使用“\”,这是不合法的,应该改成“//”

4.3 在make过程中,报“头文件找不到”错误:


该问 题可能是引用了在MinGW中不存在的头文件。当在Window中借助VS工具开发的代码时,该问题可能较为常见。如果大家建立的工程需要在Linux 下运行,那在编码过程中,尽量避免使用Windows系统文件或者VS专有的头文件,或者通过编译宏进行区分。

Created by 王彬

在Windows下使用CMake+MinGW搭建C/C++编译环境相关推荐

  1. Windows下Eclipse和PyDev搭建完美Python开发环境

    Windows下Eclipse和PyDev搭建完美Python开发环境 之前安装Eclipse,JDK,Python什么的就不说了.直接从安装PyDev开始(借用了几张别人的图): 打开Eclipse ...

  2. Windows下使用cmake vscode搭建 C/C++开发调试环境

    在windows下搭建的方式,在第3章之后同样适用于Linux系统,大致步骤均相同 1. MinGW的下载与安装 MinGW提供了 C/C++编译器,可以将程序源代码编译为可以在 Windows 中运 ...

  3. windows下使用cmake+mingw配置makefile(2)

    转载自:https://blog.csdn.net/xiaopangzi313/article/details/53117923 前面一节说了cmake简易使用,但是实际开发中项目文件非常多,使用哪种 ...

  4. 干货分享:在Windows下使用Visual Studio搭建C语言开发环境

    前言:本文将教大家如何使用 VIsual Studio Code 搭建 C 语言开发环境,包括使用 VS Code 如何编译和调试 C 语言程序,需要 用到的工具有 Visual Studio Cod ...

  5. windows下使用cmake+mingw配置makefile(1)

    转载自:https://blog.csdn.net/xiaopangzi313/article/details/53115702 1.下载Cmake,并配置环境变量 下载链接:https://cmak ...

  6. Windows 上如何通过 Gitee 搭建 ESP8266_RTOS_SDK 的编译环境

    需要安装的软件: Git Bash Python 环境,ESP8266 Master 需要安装 Python v3 版本的环境,安装的时候,记得勾选 "add to PATH" 打 ...

  7. windows下 lvgl+qt 虚拟环境搭建

    windows下 lvgl+qt 虚拟环境搭建 一.工具准备 qt creator 安装 1.软件地址:https://download.qt.io/development_releases/qtcr ...

  8. windows 下使用 Filezilla server 搭建 ftp 服务器

    windows 下使用 Filezilla server 搭建 ftp 服务器 1. Filezilla server 免费,开源, ftp 服务端 2. 下载安装, windows  https:/ ...

  9. CUDA在Windows下的软件开发环境搭建

    http://www.cnblogs.com/yaoyuanzhi/archive/2010/11/13/1876215.html CUDA在Windows下的软件开发环境搭建 本文我们以Visual ...

最新文章

  1. 【python3】 抓取异常信息try/except
  2. Xcode生成的可执行文件在哪里
  3. 微信发卡小程序源码-自动发卡小程序源码-带流量主功能
  4. 手把手教你如何安装Mac OS X 图文详细教程
  5. python文件是怎么打开_python file怎么打开
  6. 详解MySQL执行事务的语法和流程
  7. antd vue关闭模态对话框_Vue.extend 登录注册模态框
  8. mysql的sql优化工具下载_MySQL SQL查询优化工具EverSQL
  9. Supervisor安装与配置问题一站式解决
  10. 【分治】动态点分治 ([ZJOI2007]捉迷藏)
  11. 解决 react-router 中 history is 'undefined' 的问题
  12. H3C Hybrid实验
  13. 北京交通大学第六届新生程序设计竞赛题解
  14. qt制作简易的视频通话
  15. 微信小程序——三角形面积计算
  16. 苹果cms插件_苹果cms v10 站群插件修复版
  17. 手把手教你建立私人数据检索库(二)
  18. 优盘连接时显示参数错误请问咋才能修复
  19. (第16-17讲)STM32F4单片机,FreeRTOS中断管理简介【视频笔记、代码讲解】【正点原子】【原创】
  20. 【PHP开发】国外程序员收集整理的 PHP 资源大全

热门文章

  1. 容器编排技术 -- Kubernetes 设计理念
  2. oracle 压力测试工具benchmarksql
  3. 在windows下挂载nfs文件系统
  4. java异常处理简介_【自学java】异常处理简介
  5. sqlserver空间数据 + c# 实现查询附近的设备
  6. 【Day07】v-model 是如何实现的,语法糖实际是什么?
  7. 【网站】给网站添加一个夜间模式切换按钮
  8. C#LeetCode刷题之#14-最长公共前缀​​​​​​​(Longest Common Prefix)
  9. 正则语言和正则表达式_探索正则表达式背后的语言学
  10. SpriteKit Advanced —如何构建2,5D游戏(第一部分)