windows下使用CMake 和 MinGW 配置makefile,并编译出exe程序-程序员宅基地

技术标签: CMake  Windows  CMD编译原理  MINGW  

1、安装Cmake

1.没有使用安装版本,在cmake官网下载zip压缩的文件,解压到.\cmake-3.2.0-rc1-win32-x86.

2.添加环境变量。将.\cmake-3.2.0-rc1-win32-x86\bin环境变量添加到系统变量Path中。

2、安装MinGW

在MinGW的官网下载mingw-get-setup.exe,安装完后,将bin/lib/include三个环境变量添加到系统Path中。

3、将MinGW目录\bin下的mingw32-make.exe重命名为make.exe。

4、创建目录 hello在desktop上。

5、创建文件 hello.cpp

#include <iostream>

using namespace std;

int main() {
  cout<<"Hello World"<<endl;
  return 0;
}

 6、创建文件 CMakeLists.txt

#设置C编译器  
set(CMAKE_C_FLAGS "-g -Wall  -I .\\include -L .\\mingw\\lib")#  
  
set(CMAKE_CXX_COMPILER "g++")#设置C++编译器  #include和lib的位置要和自身安装的位置一致
set(CMAKE_CXX_FLAGS "-g -Wall  -I .\\include -L .\\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}) 

 minGW的include和Lib都换成实际环境中自己的地址。

7、在CMD下执行命令

./ hello > cmake -G   "MinGW Makefiles" . 
./ hello > make 

8、在CMD下运行程序 

./hello > hello

9、错误 

CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.

#在命令中指定路径

cmake -G "MinGW Makefiles" -D"CMAKE_MAKE_PROGRAM:PATH=D:/work/program/Qt/Qt5.6.2/Tools/mingw492_32/bin/make.exe" .
#make.exe的路径要和自己安装的mingw的路径一致。

10、参考 

windows下使用cmake+mingw配置makefile
http://blog.csdn.net/xiaopangzi313/article/details/53115702

CMake 入门实战
http://www.hahack.com/codes/cmake/

cmake使用示例与整理总结
http://blog.csdn.net/wzzfeitian/article/details/40963457/
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/candleer/article/details/98885740

智能推荐

视频教程-Docker入门与进阶实战(基于Java,通俗易懂,附源码)-Java-程序员宅基地

文章浏览阅读214次。Docker入门与进阶实战(基于Java,通俗易懂,附源码) 拥有8年JAV..._java基础进阶 docker入门 实战

数据库与MPP数仓(十二):数据仓库的价值_基础数据仓库的 价值-程序员宅基地

文章浏览阅读7.2k次,点赞7次,收藏9次。构思一个主题讨论数据仓库的构建方法论,包括数据仓库的价值、选型、构建思路,随着数据规模膨胀和业务复杂度的提升,大型企业需要构建企业级的数据仓库(数据湖)来快速支撑业务的数据化需求,与传统的数据库构建不通,数据仓库即是OLAP场景,偏于历史数据的存储/分析,用冗余存储换取数据价值;一、数据仓库和数据库的区别所有的应用系统都会涉及到数据库,针对数据库归纳和存放,也就是数据库的常见操作:增、删、改、查,那么为什么想要对企业数据进行分析,不能直接查询数据库,非要大费力气的去创建所谓的数据仓库和数据湖呢?._基础数据仓库的 价值

web全栈后台权限管理系统(VUE+ElementUi+nodeJs+koa2)_vue+elementui+nodejs+koa2+mongodb全栈开发后台管理系统-程序员宅基地

文章浏览阅读894次。VUE+ElementUi+nodeJs+koa2_vue+elementui+nodejs+koa2+mongodb全栈开发后台管理系统

2018上半年GitHub上最热门的开源项目-程序员宅基地

文章浏览阅读43次。关注GitHub的人都知道,这个平台上面有太多优秀的值得学习的开源项目了,这里总结了2018上半年GitHub上最热门的开源项目。1: tensorflowhttps://github.com/tensorflow/tensorflowTensorFlow是一个使用数据流图进行数值计算的开源软件库。图节点表示数学运算,而图边表示在它们之间流动的多维数据数组(张量)..._build-your-own-vue

【vscode】远程连接报错Resolver error: Connecting was canceled_resolver error: error: connecting was canceled-程序员宅基地

文章浏览阅读1.7w次。https://blog.csdn.net/qq_41058526/article/details/105291284亲测解决。_resolver error: error: connecting was canceled

Windows的torch + Cuda + cuDNN_cuda必须安装在c盘吗-程序员宅基地

文章浏览阅读2k次。windows下的pytorch-gpu安装_cuda必须安装在c盘吗

随便推点

安全套接层Secure Sockets Layer,SSL_netscape’ s secure sockets layers-程序员宅基地

文章浏览阅读2.5k次。http://zh.wikipedia.org/wiki/%E5%AE%89%E5%85%A8%E5%A5%97%E6%8E%A5%E5%B1%82安全套接层(Secure SocketsLayer,SSL)是一种安全协议,在網景公司(Netscape)推出首版Web浏览器的同时提出,目的是为网络通信提供安全及数据完整性保障,SSL在传输层中对网络通信进行加密。SSL采用公开密钥技术,_netscape’ s secure sockets layers

Oracle Easy Connect Naming method-程序员宅基地

文章浏览阅读356次。在Oracle 10g中,Oracle还提供了一种称为“Oracle Easy Connect Naming method"的连接方式。这种方法是对hostnaming method的一种改进,因为hostnaming meth..._oracle naming methods

桁架工业机器人编程_一小时能搞定的可编程工业机器人 丹麦协作机器人优傲发力中国...-程序员宅基地

文章浏览阅读208次。IT时报见习记者 陶泳“来来,机器往下一点,再加入一个编程命令就可以完成整套设计了。”6月4日下午,优傲机器人位于上海南京西路的办公室里,一群毫无AI基础的记者们在短短一个小时的培训后都“变身”编程高手,在一个类似平板电脑的操作台上进行简单操作之后,一个个像人类手臂一样的协作机器人便可以根据指令完成类似搬运物品等各种操作。如此简单的操作,正是北汽李尔选择优傲机器人(Universal Robots..._协作机器人编程方法

glibc 小白指南_pkuseg glibc-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏9次。欢迎来到glibc教程!本教程将介绍glibc (GNU C Library) 的基础知识和使用方法。glibc是一个标准的C语言库,用于GNU操作系统和其他类Unix系统,它提供了大量的基础函数和例程,对于大多数C程序的正确运行是必不可少的。让我们开始吧!_pkuseg glibc

如何查看发请求(向后端发请求)?(浏览器)_edge查看网站请求-程序员宅基地

文章浏览阅读5.2k次。1.谷歌浏览器步骤: f12(或者右击检查) --> 点击Network --> 选中Fetch/XHR(就可以看发往后端的请求了。)2.Microsoft Edge步骤: f12(或者右击检查) --> 点击(网络)Network --> 选中Fetch/XHR(就可以看发往后端的请求了。)..._edge查看网站请求

C语言求两个整数最大值_两个整数的最大值-程序员宅基地

文章浏览阅读5.7k次,点赞6次,收藏5次。上代码:#include#define Max(a,b) ((a>b)?(a):(b)) //预处理实现int max(int a,int b) //函数实现{return a>b?a:b;}int main(){printf("%d\n",Max(18,19));printf("%d\n",Max(19,18));printf("\n");p_两个整数的最大值

推荐文章

热门文章

相关标签