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平台下开发的,但 ...
随机推荐
- 判断iframe加载完成、用于当ifame加载完成时执行一些操作
window.frames["iframec"].addEventListener( "load", function(){ window.frames[&qu ...
- 2018-2019 2 20165203 《网络对抗技术》 Exp4 恶意代码分析
2018-2019 2 20165203 <网络对抗技术> Exp4 恶意代码分析 实验要求 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp ...
- Extjs MVC模式开发,循序渐进(一)
本文讲述extjs mvc的Helloworld,tabPanel,event,页面布局layout等内容. 本页包含:MVC模式案例(一)~MVC模式案例(六),从搭建extjs mvc到点击按钮生 ...
- git merge简介
git merge的基本用法为把一个分支或或某个commit的修改合并到现在的分支上.我们可以运行git merge -h和git merge --help查看其命令,后者会直接转到一个网页(git的 ...
- 【AtCoder】CODE FESTIVAL 2017 qual B
最近不知道为啥被安利了饥荒,但是不能再玩物丧志了,不能颓了 饥荒真好玩 A - XXFESTIVAL CCFESTIVAL #include <bits/stdc++.h> #define ...
- linux 中的./configuration --prefix=安装路径 的用法(指定源码安装方式的安装路基)
源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./con ...
- ORA-01427: 单行子查询返回多个行
有人问题我一个问题,情况如下:他要用根据divide_act_channel_day的new_amount字段去更新divide_stat的new_amount字段.两张表关联的条件:day=log_ ...
- Codeforces 514E Darth Vader and Tree 矩阵快速幂
Darth Vader and Tree 感觉是个很裸的矩阵快速幂, 搞个100 × 100 的矩阵, 直接转移就好啦. #include<bits/stdc++.h> #define L ...
- GYM 101673 A - Abstract Art 多个一般多边形面积并
A - Abstract Art #include<bits/stdc++.h> #define LL long long #define fi first #define se seco ...
- Nginx 启动脚本,超级详细
转载自:https://www.cnblogs.com/leffss/p/7845303.html