qmake 乱乱乱谈(一)
来源:互联网 发布:7层网络协议 http 编辑:程序博客网 时间:2024/05/17 23:11
- 不想太深入地去看qmake,可是,左等,右等,总不见Qt新的构建系统有什么新消息。还是整理一下qmake吧,由于没什么主题,还不知道本文最终会乱到什么程度。
注:你可能会对下面的内容感兴趣。
浅谈 qmake 之 pro、pri、prf、prl文件
浅谈 qmake 之 shadow build
qmake 之 CONFIG(debug, debug|release)
qmake 之 CONFIG 与 QT 乱谈
变量
$$varName
$${varName}
qmake工程文件内定义变量的值
$$(varName)
qmake运行时,环境变量的值
$(varName)
makefile被处理时,环境变量的值
$$[varName]
Qt配置选项的值
${varName}
你可能见过这个用法,但本文不讨论这个东西,以后用到时会提及
这4中用法区别何在?没有例子我还真说不明白...
$$varName
例子:
- test.pro
projectname = dbzhangFULL1 = $$projectname/800FULL2 = $${projectname}800!build_pass:message($$FULL2)
运行qmake时,输出结果是
Project MESSAGE: dbzhang/800 dbzhang800
- 何时加大括号?当变量和后面的字符连接到一块的时候。
- build_pass 干嘛用的?自己试试看吧,如果没有它,同样的消息在windows下会被输出3次(因为会生成3个makefile文件,每个一次)。
$$(varName)
环境变量,就是大家通常说得环境变量。例子:
- test.pro
message($$(PATH))
运行qmake时,结果:
Project MESSAGE: /usr/bin:/home/debao/qt-labs/qt5/qtbase/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$(varName)
makefile被处理时,环境变量的值?如何理解??
看例子:
- test.pro
INCLUDEPATH += $(MYINCLUDEPATH)
执行qmake
$ export MYINCLUDEPATH="/home/dbzhang800/include"$ qmake test.pro
生成的makefile:
...INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I$(MYINCLUDEPATH) -I....
为了对比,可以将单$符号,改成$$再试试看看,运行命令,结果:
...INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/home/dbzhang800/include -I....
$$[varName]
Qt配置选项的值?何解??
- 配置选项值有哪些?
debao@ubuntu:~/ttt/qmake-t1$ qmake -queryQT_INSTALL_PREFIX:/usrQT_INSTALL_DATA:/usr/share/qt4QT_INSTALL_DOCS:/usr/share/qt4/docQT_INSTALL_HEADERS:/usr/include/qt4QT_INSTALL_LIBS:/usr/libQT_INSTALL_BINS:/usr/bin...
- 有什么用呢?比如,我们编译一个动态库,想将dll放置到Qt的bin目录下(供其它程序使用):
win32:{ DLLDESTDIR = $$[QT_INSTALL_BINS] QMAKE_DISTCLEAN += $$[QT_INSTALL_BINS]\\dbzhang800.dll}
- 除了这些还有其他值么?恩,你可以自己设置一些值,比如
$ qmake -set dbzhang 800
然后就可以在pro文件内用 $$[dbzhang] 了
注:在Qt5下,有 qmake -unset dbzhang 可以取消设置,在Qt4下没有 unset!
注:设置值是通过QSettings保存的。你应该知道保存在何处了,呵呵
QSettings(QSettings::UserScope, "Trolltech", "QMake");
晕死,4个这东西竟然写了这么长。只好本文标题中加个(一),慢慢写二三四了。
参考
http://developer.qt.nokia.com/wiki/Qt_Modules_Maturity_Level
http://labs.qt.nokia.com/2009/10/12/to-make-or-not-to-make-qmake-and-beyond/
http://labs.qt.nokia.com/2009/10/14/to-make-or-not-to-make-qmake-and-beyond-redux/
- qmake 乱乱乱谈(一)
- qmake概念理解(一)
- qmake 乱乱乱谈(二)
- qmake 乱乱乱谈(三)
- qmake 乱乱乱谈(四)
- qmake 乱乱乱谈(四)
- qmake
- QMake
- qmake
- QMake
- qmake
- qmake
- qmake
- qmake
- qmake
- qmake
- qmake
- qmake
- .Net 中操作文本文件
- soldering tutorial-http://www.aaroncake.net/electronics/solder.htm
- 第二篇 C
- 半秒内筛一亿以内的所有素数
- 红黑树(一) 插入
- qmake 乱乱乱谈(一)
- 如果你的男朋友是这样 请你离开。女朋友同理 (很经典请牢记)
- 添加菜单遇到的问题引出的linux下gksu和sudo的分别
- Transforms CTM, 转换矩阵
- 关于android的资料
- Android控件解析
- 上vdfas飞
- 将QNX应用上传到QNX虚拟机上
- 毕业前的第一次笔试总结