转载自:https://blog.csdn.net/xiaopangzi313/article/details/53115702

1.下载Cmake,并配置环境变量
下载链接:https://cmake.org/download/

环境变量略

2. 生成Makefile
1)新建 hello 文件夹,在hello中创建hello.c测试程序

[cpp] view plaincopyprint?
  1. mkdir hello
  2. cd C:\Users\Administrator\Desktop\hello
mkdir hello
cd C:\Users\Administrator\Desktop\hello

2)在hello中编写hello.cpp如下:

[cpp] view plaincopyprint?
  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. cout << ”hello word cmake!!!” <<  endl;
  5. return 0;
  6. }
#include <iostream>
using namespace std;int main(){cout << "hello word cmake!!!" <<  endl;return 0;
}

3)在hello文件夹中创建CMakeLists.txt,编辑如下:

[cpp] view plaincopyprint?
  1. <pre name=“code” class=“cpp”><pre name=“code” class=“cpp”>set(CMAKE_C_COMPILER “gcc”)#设置C编译器
  2. set(CMAKE_C_FLAGS ”-g -Wall  -I C:\\mingw-4.81\\mingw\\include -L C:\\mingw-4.81\\mingw\\lib”)#
  3. set(CMAKE_CXX_COMPILER ”g++”)#设置C++编译器
  4. set(CMAKE_CXX_FLAGS ”-g -Wall  -I C:\\mingw-4.81\\mingw\\include -L C:\\mingw-4.81\\mingw\\lib”)
  5. PROJECT (HELLO CXX)
  6. SET(SRC_LIST hello.cpp)
  7. ADD_EXECUTABLE(hello {SRC_LIST})&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span>MESSAGE(STATUS&nbsp;<span class="string">"This&nbsp;is&nbsp;BINARY&nbsp;dir&nbsp;"</span><span>&nbsp;{SRC_LIST})&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span>MESSAGE(STATUS&nbsp;<span class="string">"This&nbsp;is&nbsp;BINARY&nbsp;dir&nbsp;"</span><span>&nbsp;{SRC_LIST})
  8. MESSAGE(STATUS "This is BINARY dir " {HELLO_BINARY_DIR})
  9. MESSAGE(STATUS ”This is SOURCE dir ” ${HELLO_SOURCE_DIR})
<pre name="code" class="cpp"><pre name="code" class="cpp">set(CMAKE_C_COMPILER "gcc")#设置C编译器
set(CMAKE_C_FLAGS "-g -Wall  -I C:\\mingw-4.81\\mingw\\include -L C:\\mingw-4.81\\mingw\\lib")#set(CMAKE_CXX_COMPILER "g++")#设置C++编译器
set(CMAKE_CXX_FLAGS "-g -Wall  -I C:\\mingw-4.81\\mingw\\include -L C:\\mingw-4.81\\mingw\\lib")PROJECT (HELLO CXX)
SET(SRC_LIST hello.cpp)
ADD_EXECUTABLE(hello ${SRC_LIST})MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir " ${HELLO_SOURCE_DIR})

上述指令的解释如下:
PROJECT:指定工程名字为hello,编程语言为c++,这个指令也隐式的定义了两个cmake变量:<projectname>_BINARY_DIR
以及<projectname>_BINARY_DIR,这里就是HELLO_BINARY_DIR和HELLO_SOURCE_DIR,两个变量指的都是当前工程的路径

Set:是用来显式的定义变量的,我们之前用到的是SET(SRC_LIST main.cpp)如果有多个源文件,也可以定义成SET
(SRC_LIST hello.cpp test1.cpp test2.cpp)定义了这个工程会生成一个文件名为hello的可执行文件,相关的源文件是
SRC_LIST中定义的源文件列表

MESSAGE:这个指令用于向终端输出用户信息,即上面生成的HELLO_BINARY_DIR和HELLO_SOURCE_DIR

4)生成Makefile

[cpp] view plaincopyprint?
  1. cmd
  2. cd C:\Users\Administrator\Desktop\hello
  3. cmake -G   ”MinGW Makefiles” . # .为当前目录, “MinGW Makefiles”为makefile类型,如果编译器为vs的话使用“NMake Makefiles”
cmd
cd C:\Users\Administrator\Desktop\hello
cmake -G   "MinGW Makefiles" . # .为当前目录, "MinGW Makefiles"为makefile类型,如果编译器为vs的话使用"NMake Makefiles"

5)执行编译、运行

make

helllo.exe

从上述的cmake的流程中我们可以看到,cmake的使用核心就是使用CMakeLists.txt配置Makefile,而CMakeLists.txt则有一套自己的语法,这个语法

需要在项目的配置中不断摸索学习。

参考文献:http://www.cppblog.com/Roger/archive/2011/11/17/160368.html

windows下使用cmake+mingw配置makefile(1)相关推荐

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

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

  2. 在Windows下使用CMake+MinGW搭建C/C++编译环境

    转载自:https://blog.csdn.net/isscollege/article/details/78038921?locationNum=8&fps=1 1 工具介绍 作为一款执行效 ...

  3. Windows下用CMake编译JsonCpp及配置(适合新手)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 JsonCpp是什么? JSON是一种轻量级的数据交换格式.它可以表示数字.字符串.有序的值序列 ...

  4. 脱离AS在windows下使用CMake交叉编译for Android

    脱离AS在windows下使用CMake交叉编译for Android 前言 可能有Android开发经验并搞过jni的撸友知道,使用Android ndk 中的ndk-build 结合Android ...

  5. windows下安装cygwin及配置

    windows下安装cygwin及配置 对于使用Windows操作系统作为开发平台同时又喜欢类unix环境的朋友(Windows不是最方便的开发环境),这里是在Cygwin环境下安装Rails的步骤 ...

  6. windows下spark开发环境配置

    --本篇随笔由同事葛同学提供. windows下spark开发环境配置 特注:windows下开发spark不需要在本地安装hadoop,但是需要winutils.exe.hadoop.dll等文件, ...

  7. 学习笔记:Windows 下Keras安装和配置指南

    目录: 目录: Windows下Keras安装和配置指南 Keras 框架搭建 安装 本系列参考官方文档官方文档 这就是keras可以参考前篇:这就是keras 学习笔记 Keras:一些基本概念 一 ...

  8. Windows 下 Anaconda3 的安装配置

    Windows 下 Anaconda3 的安装配置 我的小站.Github Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项. 目录 ...

  9. Nginx + Tomcat Windows下的负载均衡配置

    一.为什么需要对Tomcat服务器做负载均衡?     Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果超过500的并发数会出现Tomcat不能响应新的请求的情况,严重影响网 ...

最新文章

  1. python excel行数_使用python计算excel中的行数
  2. eclipse启动tomcat报错
  3. android a z 快速定位,快速集成android实现listview的字母A-Z排序,界面侧边字母索引...
  4. 这里有 40 本 Python 书等你来领取!(任选)
  5. win8.1 USB启动盘制作(不支持UEFI,不支持GPT分区)
  6. session的存储,以及redis基本介绍
  7. python怎样在一行中捕获多个异常
  8. Active Directory 回收站之Windows Server 2008 R2
  9. Python版C语言词法分析器
  10. UE4 蓝图 循环调用
  11. CTU Open Contest 2019 C. Beer Coasters(计算几何)
  12. 微信正式支持注册小号,但不是谁都可以
  13. Cesium 水淹分析
  14. flutter原生插件开发--IOS端
  15. vue中EventBus的实现原理
  16. [论文阅读] 基于辅助函数的IVA(使用源先验的四阶关系)
  17. 聂易铭:3月11日数字货币插针诱惑,做多只能浅尝辄止
  18. 1192: 奖学金(结构体专题)模块化
  19. 12V电路电源设计:挑战和降低EMI的技巧
  20. 【Let‘s make it big】英语学习合集1~10

热门文章

  1. 图片服务 - thumbor入门
  2. 容器编排技术 -- Kubernetes Pod概述
  3. MySQL 配置错误
  4. 深入理解设计模式(22):享元模式
  5. asp.net单一登录
  6. 【C语言】(指针) 将两个数排序
  7. C#LeetCode刷题-二叉搜索树
  8. C#设计模式之23-访问者模式
  9. 印度软件开发人员_我如何辍学并在19岁时在印度找到了一份开发人员的工作
  10. 这是可用于下一个项目的React Native工具列表