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

智能推荐

FFmpeg指定x265编码器线程数-程序员宅基地

文章浏览阅读4.7k次。转载请注明出处:http://cyc.wiki/index.php/2018/07/17/ffmpeg指定x265编码器线程数/FFmpeg的-threads参数FFmpeg调用编码器时,一般使用-threads参数对编码器使用的线程数进行设置。 比如:ffmpeg -s 1920x1080 -framerate 25 -i input.yuv -c:v libx264 -t..._ffmpeg指定x265编码器线程数

ubuntu查看网速的工具_ubuntu查看网口百兆千兆-程序员宅基地

文章浏览阅读3.4k次。1.工具一:slurm安装sudo apt-get install slurm (Ubuntu系统)查看网速命令slurm -i eth0 (etho为网卡名)*******************************************************************************************************xiabi_ubuntu查看网口百兆千兆

基于OpenCPU方案的BC26 NB模组开发总结-程序员宅基地

文章浏览阅读3.8k次,点赞3次,收藏30次。本文详细分析并介绍了基于opencpu方案开打bc26 NB模组的流程,主要分为开发工具套件的使用以及代码分析。_bc26

关于2022年12代C/C++Linux服务器开发高级架构师课程体系分析_202212.c.c.c-程序员宅基地

文章浏览阅读447次。C/C++Linux服务器高级架构师的课程到2022目前已经迭代到12代了,像之前小编也总结过,但是课程每期都有做一定的更新,也是为了更好的完善课程跟上目前互联网大厂的岗位技术需求,之前课程里面也包含了一些小的分支,其中就有音视频开发、Linux内核开发、DPDK、golang等等一些程序员所需要的硬核技术。今天总结分析是2022年最新的课程体系。_202212.c.c.c

基于单片机12864的出租车计价器设计-程序员宅基地

文章浏览阅读1.2k次,点赞10次,收藏13次。*单片机设计介绍,基于单片机12864的出租车计价器设计。

从零开始搭建一个GIS开发小框架(一)——基本框架_greatmaps-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏33次。使用GMap.Net控件从零开始搭建一个GIS开发小框架_greatmaps

随便推点

Flutter项目实战之Flutter_Gank,7天拿到阿里Android岗位offer-程序员宅基地

文章浏览阅读615次,点赞23次,收藏27次。终于说了一点和标题相关的了,不然有人要说我标题党了,其实做完之后感觉也没什么特色,就列一些用到了哪些知识点吧自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!_flutter项目实战

iframe全屏展示pdf_iframe pdf 像video 一样自动全屏-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏6次。使用iframe显示pdf时,默认会根据浏览器自适应,如果想实现让pdf沾满整个容器宽度,需要设置以下属性<iframe width="100%" :src="PDFsrc+'#view=FitH,top'" frameborder="0" style="width: 100%; height: 100%"></iframe>在src路径后面添加#view=FitH,top默认是自适应,也可手动添加#view=Fit..._iframe pdf 像video 一样自动全屏

译:为什么我们不要 .NET 程序员-程序员宅基地

文章浏览阅读55次。本文是从Why we don’t hire .NET programmers这篇文章翻译而来。也许你已经知道了,我们正在招聘最优秀的程序员。不错,每个人都这样说。但是我们的程序员能打败你们的——任何时候。比如,米奇虽然只有5英尺高,但他是一个有相当实力的击剑手。维托尔德以前是一个6’3″的职业冰球选手。内特喜欢以丢匕首为乐。当然,他们都是很有水平的程序员。发现这些人才...

迅为i.MX6Q开发板Ubuntu20.04 Can通信_ubuntu下的设置can通信的参数-程序员宅基地

文章浏览阅读335次。开发平台:i.MX6Q开发板1硬件连接作者测试can,使用的是两块 iTOP-iMX6 开发板。板子是 can 的+连接+,-连接-,如下图所示。2 canconfig工具配置首先配置工具和库文件,将压缩包“can_libs.rar”、“can_tools.zip”和 “can_libs_more.zip”解压得到“can_tools”、“can_libs”以及“”can_libs_more,拷贝解压出来的文件到 tf 卡或者 u 盘, 如下图所..._ubuntu下的设置can通信的参数

Java(8):maven打包成可执行jar包(1个jar包和1个lib依赖包目录)_若依框架打包出来为什么是一个 lib包一个 jar 包-程序员宅基地

文章浏览阅读2.1k次。使用maven-jar-plugin和maven-dependency-plugin打可执行包备注:引用的第三方包放在执行目录的的lib下1.1 pop.xml <build> <plugins> <!-- 设置编译版本为1.8 --> <plugin> <groupId>org.apache...._若依框架打包出来为什么是一个 lib包一个 jar 包

Flutter --- Dart简介_flutter dart-程序员宅基地

文章浏览阅读2.4k次。一、简介由Google主导开发,于2011年10月公开。它的开发团队由Google Chrome浏览器V8引擎团队的领导者拉尔斯·巴克主持,目标在于成为下一代结构化Web开发语言。类似JavaScript,Dart也是一种面向对象语言,但是它采用基于类编程。Dart的设计目标应该是既对标Java,也对标JavaScript,Dart在静态语法方面和Java非常相似,如类型定义、函数声明、泛型等,而在动态特性方面又和JavaScript很像,如函数式特性、异步支持等。二、主要用途Dart有一下三个方向的_flutter dart

推荐文章

热门文章

相关标签