2021-03-21 22:49
⁄ 工业·编程
⁄ 共 1880字
Qt 的make系统也挺坎坷的,qmake用了很多年了,设计比较简陋,qmake不是个脚本语言,也不是像json xml这种有schema的标记语言,就是个简单的配置选项,很难再继续扩展,qmake只用于Qt没有其它生态。
后来Qt 发起了qbs,希望基于Javascript语法做一套make系统,但是这个项目没成功
对于Qt这个规模的项目,剩下的选择就不多了,必须功能强大完整,必须跨平台,必须有成熟的生态,基本只有cmake可以选了。
cmake基本用过的人都不会...
CMake, qmake, Qt阅读全文
2015-05-09 06:56
⁄ 工业·编程
⁄ 共 2196字
继续《qmake 乱乱乱谈(三) 》,本文主题:低调的 TEMPLATE = subdirs
非常非常常用的一个东西,可是manual中却介绍的很少,太低调了。在编写包含多可执行文件、库、插件 的程序时,一直不敢相信subdirs的能力,以至于曾一度想转到cmake之下。
Manual
Manual 中对 TEMPLATE = subdirs 的介绍实在简单:
Creates a Makefile containing rules for the subdirectories specified using the SUBDIRS variable. Each s...
qmake阅读全文
2015-05-08 06:53
⁄ 工业·编程
⁄ 共 3022字
接前面的qmake 乱乱乱谈(一)以及qmake 乱乱乱谈(二) ,本文看看qmake中的函数(Manual中有的就不重复了)。
函数分两种:
内置函数 (qmake Manual中列出的属于此类)
自定义函数 (通过defineReplace或defineTest定义)
函数还可以分两种(真不知道怎么叙述):
返回值是布尔量的函数。(或者称为条件函数?)
内置函数中的 system()、exists()等用作条件的函数
内置函数中的 error()、return()、export()等不用做条件的函数
...
qmake阅读全文
2015-05-05 06:49
⁄ 工业·编程
⁄ 共 3772字
接前面qmake 乱乱乱谈(一),继续看看qmake。
暂定主题:qmake之命令行参数及qmake启动时加载了什么东西,或许可以借此学习一下qmake是处理命令行参数的方法
命令行参数
运行 qmake -h 可以得到qmake大部分命令行参数及其说明。本文预计涉及到的参数如下:
-project
工作于何种模式,project用来生成pro文件。默认是makefile模式
-makefile
-spec spec -platform spec
使用何种spec? 本文重...
qmake阅读全文
2015-05-04 06:41
⁄ 工业·编程
⁄ 共 1746字
变量
$$varName $${varName}
qmake工程文件内定义变量的值
$$(varName)
qmake运行时,环境变量的值
$(varName)
makefile被处理时,环境变量的值
$$[varName]
Qt配置选项的值
${varName}
你可能见过这个用法,但本文不讨论这个东西,以后用到时会提及
这4中用法区别何在?没有例子我还真说不明白...
$$varName
例子:
test.pro
projectname = dbzhang
FULL1 = $$proj...
qmake阅读全文
2015-03-06 21:51
⁄ 工业·编程
⁄ 共 2101字
shadow build 是什么东西?就是将源码路径和构建路径分开(也就是生成的makefile文件和其他产物都不放到源码路径),以此来保证源码路径的清洁。
这不是qmake独创的东西,cmake中早就使用这个东西了
cmake
qmake
备注
in-source
cmake .
qmake project.pro
在源码路径下执行
out-of-source (shadow-build)
mkdir build
cd build cmake ../project
mkdir b...
qmake, Qt阅读全文
2014-05-13 05:41
⁄ 工业·编程
⁄ 共 2523字
文章目录
*.pro
*.pri
*.prf
*.prl
尽管每次和cmake对比起来,我们总是说 qmake 简单、功能少。但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧:
不是太清楚CONFIG等变量到底如何起作用的
用过的qmake内置变量和函数不超过20个
看Qt Creator源码或者QtSolution等库中自己使用的 *.pro 文件就想看天书一样
本文只能抓住一条线,简单介绍一下 *.pro...
qmake, Qt阅读全文