Windows 下使用 MinGW 和 CMake 进行开发
CMake 是个非常棒的项目管理工具,这已经是毋庸置疑的。
一些小工具需要在 win 下开发,所以今天探索使用 MinGW 和 CMake 在 win 下的搭配使用。简单做记录。
MinGW 使用 Qt 5.7.0 安装包中预装的版本。
CMake 直接从官网下载了安装包:https://cmake.org/download/
因为 MinGW 和 CMake 完全是无关的两个工具,所以,只需要安装后,把工具的路径加入到系统的 Path,就可以直接在 cmd.exe 中来使用。
因为 windows 版的 CMake 支持很多的编译器,而且其默认的一般是最新的 vs 工具,所以,需要指定 Makefile 的格式:
cmake –G”MinGW Makefiles” ..
也可以使用 Cmake 提供的 UI 工具,但是你懂的。
尝试编译了一下Cmake 的 Tutorial,如下:
C:\Users\luo\cmake\build>cmake -G"MinGW Makefiles" ..
-- The C compiler identification is GNU 5.3.
-- The CXX compiler identification is GNU 5.3.
-- Check for working C compiler: C:/Qt/Qt5.7.0/Tools/mingw530_32/bin/gcc.exe
-- Check for working C compiler: C:/Qt/Qt5.7.0/Tools/mingw530_32/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:/Qt/Qt5.7.0/Tools/mingw530_32/bin/g++.exe
-- Check for working CXX compiler: C:/Qt/Qt5.7.0/Tools/mingw530_32/bin/g++.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: C:/Users/luo/cmake/build C:\Users\luo\cmake\build>mingw32-make
Scanning dependencies of target MathFunctions
[ %] Building CXX object MathFunctions/CMakeFiles/MathFunctions.dir/mysqrt.cxx.obj
[ %] Linking CXX static library libMathFunctions.a
[ %] Built target MathFunctions
Scanning dependencies of target Tutorial
[ %] Building CXX object CMakeFiles/Tutorial.dir/tutorial.cxx.obj
[%] Linking CXX executable Tutorial.exe
[%] Built target Tutorial C:\Users\luo\cmake\build>Tutorial.exe
The square root of is C:\Users\luo\cmake\build>Tutorial.exe
Tutorial.exe Version 1.0
Usage: Tutorial.exe number
PART2
在 qmake 中尝试使用 cmake 来管理非 Qt 项目。
需要在 工具->选项->"构建和运行" 中,先添加 qmake 工具链,然后,在 “构建套件(kits)”中选择刚刚添加的 Cmake 工具链。其中,cmake generator 需要选择 codeblock-mingw Makefiles(有些版本好像要在新建工程的时候再选择 generator)。
打开 QtCreator 新建一个 Non-Qt 的项目,并使用刚才添加的 cmake 作为构建系统,拷贝我们之前写好的文件过来。。。剩下的都交给 qtcreator 就可以了。
PART3
因为新版本的 CMAKE 还支持 Ninja 作为构建工具,所以,还可以直接使用 “-G Ninja -DCMAKE_MAKE_PROGRAM=/path/to/ninja” 来生成 Ninja 的规则文件。
Ninja 的使用可以参考这篇:https://www.cnblogs.com/pied/p/9597593.html
感觉 windows 下使用 Ninja 要比 make 方便。
Windows 下使用 MinGW 和 CMake 进行开发的更多相关文章
- 在Windows下使用MinGW静态编译Assimp
使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...
- windows下使用vs进行Proctocol Buffer开发(C++篇)
因工作原因接触Proctocol Buffer(protobuf),至于什么是protobuf,为何使用protobuf,我就不赘述了,百度下都是答案. 今天我介绍的是在windows下使用vs进行p ...
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
- Windows下用Eclipse搭建C/C++开发环境
本文假定你已经熟悉Java,Eclipse的安装,并能顺利启动和运行Eclipse.此外因为各软件版本在不断更新,有些地方可能不准确,以最新的.原文资料为准. 距上一次写和调C++程序,已经5.6年了 ...
- windows 下使用 mingw编译器 调试时 无法跟进源码
windows 下使用 mingw编译器 调试时 无法跟进源码 最近在公司使用QT 开发,官方在线下载的 安装的QT mingw 都是没有debug版本的 由于没有debug版本动态库 所以你调试的时 ...
- Windows下visual studio code搭建golang开发环境
Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...
- windows下使用mingw和msvc静态编译Qt5.15.xx
windows下使用mingw和msvc静态编译Qt5.15.xx 下载并安装相关依赖软件 Python version 2.7 https://www.python.org/downloads/ ( ...
- Windows下使用mingw+cmake编译C/C++程序
按照正常流程安装好mingw和cmake后,仍然是无法直接使用cmake编译处MakeFile文件的,我们需要在CMakeLists.txt中做一些配置. 首先,在PROJECT之前,设置: SET( ...
- 开源项目:windows下使用MinGW+msys编译ffmpeg
本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处. FFmpeg是在Linux平台下开发的,但 ...
随机推荐
- 简易图书管理系统(主要是jsp的练习)
1:首先设计用户表和图书表,设计的字段和类型如下图所示 1.1:用户表user 1.2:图书表book 2:第二写实体类user.java和book.java package com.bie.po; ...
- Flink(一)Flink的入门简介
一. Flink的引入 这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop.Storm,以及后来的 Spark,他们都有着各自专注的应用场景.Spark 掀开了内存计算的先河 ...
- zjoi2017 仙人掌
题解: 好难的dp啊...看题解看了好久才看懂 http://blog.csdn.net/akak__ii/article/details/65935711 如果一开始的图就不是仙人掌,答案显然为0, ...
- java实现判断一个经纬度坐标是否在一个多边形内(经自己亲测)
1.在高德地图上绘制的多边形:经纬度逗号分隔格式:上面是用来方便存坐标的对象:下面是方法测试:直接复制代码即可运行 public class Point { private Double x; pri ...
- Openvas安装
Openvas简介 Openvas是开源的,是Nessus项目分支,用于管理目标系统的漏洞,检测目标网络或主机的安全性.它的评估能力来源于数万个漏洞测试程序,openvas 早起版本还有一个客户端,现 ...
- 学习ApiCloud遇到的问题
1,当前账户xx 似乎没有权限访问此应用的云端数据,请切换账 检查项目的config.xml的id与apicloud的应用id是否一致
- Lucene、ES好文章
1.lucene4.5源码分析系列:lucene概述 http://blog.csdn.net/liweisnake/article/details/10348969 http://www.cnblo ...
- 潭州课堂25班:Ph201805201 爬虫基础 第十五课 js破解 二 (课堂笔记)
PyExecJs使用 PyExecJS是Ruby的ExecJS移植到Python的一个执行JS代码的库. 安装 pip install PyExecJS 例子 >>> import ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第一课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- Struts2标签里面调用java方法
<s:if test="#session.user.hasPrivilegeByName(name)"> hasPrivilegeByName(name) 为User类 ...