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 进行开发的更多相关文章

  1. 在Windows下使用MinGW静态编译Assimp

    使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...

  2. windows下使用vs进行Proctocol Buffer开发(C++篇)

    因工作原因接触Proctocol Buffer(protobuf),至于什么是protobuf,为何使用protobuf,我就不赘述了,百度下都是答案. 今天我介绍的是在windows下使用vs进行p ...

  3. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  4. Windows下用Eclipse搭建C/C++开发环境

    本文假定你已经熟悉Java,Eclipse的安装,并能顺利启动和运行Eclipse.此外因为各软件版本在不断更新,有些地方可能不准确,以最新的.原文资料为准. 距上一次写和调C++程序,已经5.6年了 ...

  5. windows 下使用 mingw编译器 调试时 无法跟进源码

    windows 下使用 mingw编译器 调试时 无法跟进源码 最近在公司使用QT 开发,官方在线下载的 安装的QT mingw 都是没有debug版本的 由于没有debug版本动态库 所以你调试的时 ...

  6. Windows下visual studio code搭建golang开发环境

    Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...

  7. windows下使用mingw和msvc静态编译Qt5.15.xx

    windows下使用mingw和msvc静态编译Qt5.15.xx 下载并安装相关依赖软件 Python version 2.7 https://www.python.org/downloads/ ( ...

  8. Windows下使用mingw+cmake编译C/C++程序

    按照正常流程安装好mingw和cmake后,仍然是无法直接使用cmake编译处MakeFile文件的,我们需要在CMakeLists.txt中做一些配置. 首先,在PROJECT之前,设置: SET( ...

  9. 开源项目:windows下使用MinGW+msys编译ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.    FFmpeg是在Linux平台下开发的,但 ...

随机推荐

  1. [转]什么时候该用NoSQL?

    NoSQL这两年越来越热,尤其是大型互联网公司非常热衷这门技术.根据笔者的经验,并不是任何场景,NoSQL都要优于关系型数据库.下面我们来具体聊聊,什么时候使用NoSQL比较给力: 1) 数据库表sc ...

  2. python学习之基本数据类型

    python的基本数据类型有数字.字符串.列表.字典.元祖.布尔值 一.数字 1.1.字符转换为数字 实例: a=" b=int(a) print(b+) 运行结果: 可以用type查看数据 ...

  3. KNN分类算法实现手写数字识别

    需求: 利用一个手写数字“先验数据”集,使用knn算法来实现对手写数字的自动识别: 先验数据(训练数据)集: ♦数据维度比较大,样本数比较多. ♦ 数据集包括数字0-9的手写体. ♦每个数字大约有20 ...

  4. HTML编码规范 - (WEB前端命名规范)

    HTML编码规范 (一)命名规则: 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wr ...

  5. Python - 常用更新命令以及常见库安装

    库的安装方式一般有两种: 一. pip直接安装(或使用豆瓣源) pip install scrapy pip install -i https://pypi.douban.com/simple/ sc ...

  6. 基于 Jenkins+Docker+Git 的CI流程初探

    在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要.目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部 ...

  7. 电商sku商品推荐

    1.逻辑回归LR进行实时离线三级品类训练. 2.通过用户对于实时.离线三级品类的偏好进行召回. 3.通过人的特征.sku特征.人sku交互特征.以及位置手机特征通过gbdt模型进行点击量预估.

  8. css 背景透明色, 文字不透明。

    [原]CSS实现背景透明,文字不透明,兼容所有浏览器 background-color: rgba(0,0,0,0.5); filter:Alpha(opacity=50);

  9. cf348D. Turtles(LGV定理 dp)

    题意 题目链接 在\(n \times m\)有坏点的矩形中找出两条从起点到终点的不相交路径的方案数 Sol Lindström–Gessel–Viennot lemma的裸题? 这个定理是说点集\( ...

  10. [NOIp2012提高组]同余方程

    OJ题号: 洛谷1082 思路: 逆元模板. #include<cstdio> #include<cctype> inline int getint() { char ch; ...