用qmake快速生成makefile

利用qmake生成Makefile文件 虽说qt已经被诺基亚放弃,但是qt项目还是在进行,5.0已经出来了。 在linux下写程序,免不了要写Makefile文件,用automake,总感觉比较麻烦,linux人喜欢做麻烦的事,以显得风格迥异。 其实用qmake生成Makefile文件相当简单。 1 装好qmake工具 2 在源码工程目录下,运行qmake -project 这样会生成一个*.pro文件。 3 运行qmake 阅读详情
用qmake快速生成makefile

摘要
qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。是qt工具包的一部分.在 Unix&linux上写程式的人大概都碰过Makefile。用 make 来开发和编译程式的确很方便,可是要写出一个 Makefile就不简单了,手写Makefile是比较困难并且容易出错的,这阻挡了很多一部分的linux爱好者加入linux程序开发的阵营。
作者:孙高勇
1.简介:
qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。是qt工具包的一部分.在Unix&linux上写程式的人大概都碰过Makefile。用 make 来开发和编译程式的确很方便,可是要写出一个 Makefile就不简单了,手写Makefile是比较困难并且容易出错的,这阻挡了很多一部分的linux爱好者加入linux程序开发的阵营。
虽然Open Source Software也有GNU Automake和GNU Autoconf两个软件可以生成makefile文件,但是对于一个简单的项目,使用Automake和Autoconf就有点杀鸡也用宰牛刀了.使用 qmake完全可以符合你的要求.Trolltech公司使用qmake作为Qt库和Qt所提供的工具的主要连编工具。
2.安装qmake
在linux平台上,安装完qt以及相关的qt工具包,qmake就已经被安装好了.你唯一要注意的就是QTDIR值的设定,这个必须设置到Qt被安装到的地方。如:/usr/lib/qt3/,以及qmake可执行文件的路径加到PATH路径中.
3. 一个简单的例子
用vi写个hello.c ,
#include
int main(int argc, char** argv)
{
printf(/"Hello, world!//n/");
return 0;
}
创建qmake需要的项目文件(hello.pro),
SOURCES = hello.cpp
CONFIG += qt warn_on release
Makefile可以像这样由/".pro/"文件生成:
qmake -o Makefile hello.pro
现在你的目录下已经产生了一个 Makefile 文件,输入/"make/" 指令就可以开始编译 hello.c 成执行文件,执行 ./hello 和 world 打声招呼吧!打开这个Makefile文件看看,是不是很专业啊!
4.高级操作技巧
当然,在实际使用过程中,我们的工程不可能象这个程序这样简单的,它可能有多个目录,多个头文件,多个源文件,需要链接器它不同的链接库等等情况。别急,让我和你慢慢道来。这些都是非常容易用qmake来实现的。我们从一个更加复杂的项目文件为例和你详细的讲诉qmake的高级技巧:
项目文件示例:
SOURCES += myqt.cpp
SOURCES += main.cpp
HEADERS += myqt.h
FORMS += xsimform.ui
TEMPLATE = lib
CONFIG += debug //
warn_on //
qt //
thread //
x11 //
plugin
TARGET = ../bin/panel_qt
INCLUDEPATH = ../../../../xsim //
../../../../xsim/IMdkit
DEFINES = BDB_VERSION4 //
OS_LINUX
从这个文件可以知道,SOURCES变量指向项目中的源文件,当项目中有多个源文件时,我们需对项目中的每一个源文件都这样做,直到结束:
SOURCES += hello.cpp
SOURCES += main.cpp
当然,如果你喜欢使用像Make一样风格的语法,你也可以写成这样,一行写一个源文件,并用反斜线结尾,然后再起新的一行:
SOURCES = hello.cpp //
main.cpp
HEADERS变量指向项目中的头文件,多个头文件的时候,和多个源文件的解决方法一致。
FORMS变量指向项目中使用到的窗体文件(qtdesign设计的.ui文件),qmake也注意了Qt的特殊需求,可以自动的包含moc和uic的连编规则。没有的话或者非qt程序可以不写。
TEMPLATE变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:
app - 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
lib - 建立一个链接库的makefile。
vcapp - 建立一个应用程序的Visual Studio项目文件。
vclib - 建立一个库的Visual Studio项目文件。
subdirs - 这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的mkefile。
CONFIG变量变量指定了编译器所要使用的选项和所需要被连接的库。配置变量中可以添加任何东西,但只有下面这些选项可以被qmake识别。
下面这些选项控制着使用哪些编译器标志:
release - 应用程序将以release模式连编。如果/"debug/"被指定,它将被忽略。
debug - 应用程序将以debug模式连编。
warn_on - 编译器会输出尽可能多的警告信息。如果/"warn_off/"被指定,它将被忽略。
warn_off - 编译器会输出尽可能少的警告信息。
下面这些选项定义了所要连编的库/应用程序的类型:
qt - 应用程序是一个Qt应用程序,并且Qt库将会被连接。
thread - 应用程序是一个多线程应用程序。
x11 - 应用程序是一个X11应用程序或库。
windows - 只用于/"app/"模板:应用程序是一个Windows下的窗口应用程序。
console - 只用于/"app/"模板:应用程序是一个Windows下的控制台应用程序。
dll - 只用于/"lib/"模板:库是一个共享库(dll)。
staticlib - 只用于/"lib/"模板:库是一个静态库。
plugin - 只用于/"lib/"模板:库是一个插件,这将会使dll选项生效。
TARGET变量指定生成的二进制代码的路径和文件名,如果建立的是一个链接库的话,它会在文件名前面自动加上/"lib/"和在最后自动加上/".so/".
我们在使用过程中可能会使用到另外的一些函数库,链接库等。函数库的头文件指定使用INCLUDEPATH变量,其它链接库的指定可以通过LIBS 变量来指定,例LIBS += -lmath -L/usr/local/lib
DEFINES变量的指定就如同make的-D选项一样。
结束语
Autoconf 和 Automake 功能十分强大,但对于普通用户来说,太过复杂。qmake方便、简单、快捷,是一个轻量级的makefile生成工具,虽然它是qt工具包的一部分,但它也完全可以用来进行其它程序makefile文件的生成,对于大多数人来说,它已经是非常的够用了。你也可以从qt提供的许多现存的源程序中找到相关的. pro项目文件,它们是学习qmake 更多技巧的最佳范例。
这篇简介只用到了 qmake 的一些皮毛罢了,希望这篇文件能帮助你对产生 Makefile有个简单的依据。
【C2000系列DSP的Bootloader详解】如何打包源文件为库文件且加密仅授权使用,一步步教你如何实现 如果想要在 TI 的 CCS 开发环境中为 C2000 系列 MCU 生成 lib 库文件,并对这些库文件进行加密保护,确保只有授权方(持有密钥)才能调用和使用,以此保护源代码的知识产权。 阅读详情

相关推荐

fastjson1.2.83反序列化漏洞

【代码】fastjson1.2.83反序列化漏洞。

Coder的博客 1万+

利用QMAKE生成MAKEFILE文件

在linux下写程序,免不了要写Makefile文件,用automake,总感觉比较麻烦,linux人喜欢做麻烦的事,以显得风格迥异。 其实用qmake生成Makefile文件相当简单。 1 装好qmake工具 2 在源码工程目录下,运行qmake -project 这样会生成一个*.pro文件。 3 运行qmake -makefile *.pro,生成Makefile文件。 此Makefile文件,包含很多的qt的信息,如果工程中没有用到qt相关的库,那么可以删去。 例子: 一个工程.

biyuntian1012的专栏 2862

从MATLAB代码入手:手把手教你复现OTFS调制解调核心模块(附完整函数解析)

本文详细解析了OTFS调制解调技术在MATLAB中的实现方法,包括核心模块如ISFFT变换、海森堡变换及MP检测算法的代码实现。通过完整的函数解析和性能验证框架,帮助通信工程师快速掌握这一前沿技术,提升在高速移动场景下的通信系统设计能力。

weixin_42568801的博客 319

qt qmake 生成的makefile介绍

在 Makefile 中,规则是指一条定义了目标文件、依赖文件以及生成命令的语句。下面是 Makefile 中规则的一般格式:command其中,target表示要生成的目标文件,可以是可执行程序、静态库、动态库等;表示生成target文件所依赖的文件列表;command表示生成target文件的命令,可以是编译命令、链接命令等。例如,下面这个简单的 Makefile 包含了一个规则:这个规则表示要生成可执行文件hello,它依赖于源文件hello.c,生成可执行文件的命令是执行gcc编译器将。

why_are_you_so的博客 3430

iPhone免越狱Git服务器搭建教程-iSH

iPhone免越狱Git服务器搭建教程

jts666的博客 4428

如何在INCA中修改标定量的初始值,并刷回控制器

测试过程中,有些时候,标定量来不及修改,这就需要修改标定量的初始值了,又不想打开模型重新编译,因此直接在INCA中修改,然后再刷回控制器,就成了最佳选择,之前也学过,长时间不用,忘记怎么搞了,最近又用到了,这次记录一下,以后用到的时候,就不用在网上东翻西找了。截止到2023年11月24日,共找到了两种方法可以实现修改。

weixin_43406519的博客 4200

qmake的使用(可设置c编译器flag参数)

本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso***还是先说一下当前的系统环境:Ubuntu 14.04 + Qt5.4如果没有安装过QT,可以安装下面几个qt软件 sudo apt-get install qt5-default qt5-doc-html qt5-qmake qt5-doc qt5-image-formats-plugins 这只是对qmake...

weixin_34195546的博客 1182

Qcom camera hal简介

Qcom camera hal简介

weixin_42136255的博客 7764

qmake的简单介绍

 URL= http://www.insideqt.com/index.php?option=com_content&view=article&id=64:qmake&catid=3:qt-development-tools-a-ide&Itemid=3Wednesday, 22 April 2009 09:27 qmake的介绍手写Makefile是比较困难并且容易出错的,尤其是需要给不同的

蚂蚁 1080

2025华为OD 面试手撕代码真题【字符串至多删除一个字符,是否能构成回文串】

2025华为OD 面试手撕代码真题【字符串至多删除一个字符,是否能构成回文串】

MISAYAONE的博客 1707

“华为杯”研究生数学建模竞赛2016年-【华为杯】A题:多无人机协同任务规划

题分别求解,保证了攻击方无人机滞留在防御方雷达有效探测范围内的时间总和最小,接着,通过提出巡检待命无人机的设想,型无人机携带炸弹的具体清单和攻击的目标清单),保证攻击方的无人机滞留防御方雷。在使用基于贪心算法的覆盖法时,覆盖的目标点中必须首先不含配备雷达站的目标点。步优化保证攻击方的无人机滞留防御方雷达有效探测范围内的时间总和最小,需首先。的“灵巧”炸弹,采用抛投方式对地攻击,即投放后炸弹以飞机投弹时的速度作抛物。运动,当炸弹接近目标后,可主动寻的攻击待打击的目标,因此炸弹落点位于目标中。

getusushu的博客 1036

Linux 用qmake快速生成makefile

1.简介:  qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。是qt工具包的一部分.在Unix&linux上写程式的人大概都碰过Makefile。用 make 来开发和编译程式的确很方便,可是要写出一个 Makefile就不简单了,手写Makefile是比较困难并且容易出错的,这阻挡了很多一部分的linux爱好者加入linux程序开发的阵营。  虽然Op

Leo 8477

如何绘制电气绝缘图(GB9706.1-2007和GB9706.1-2020差异)

是用来描述要考虑设备的绝缘状况和它们的值 ,从而便于和相关部门交流和沟通,如权威机构和检测实验室等。本文为绝缘图的实例, 包括所有相关的绝缘路径以及介电强度,爬电距离和电气间隙的值。

学海无涯的专栏 1万+

qmake - 快速生成makefile

最近开发需要增加新的功能模块,需要增加一些代码文件,还有原先比较集中存放的代码文件现在稍微细分了一点,所以代码文件数量略增加了几个。起初都是手工维护的makefile,有变动时调整比较麻烦。auto* 系列工具笔者也用过,但实在觉得不符合面向人类的设计:)。想到以前使用过QT,决定用qmake来代替手工维护。 简介 qmake是Qt框架库附带的一个工具,是一个协助简化跨平台开发

被遗忘de角落 1503

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

用qmake快速生成makefile(收藏)

摘要    qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。是qt工具包的一部分.在Unix&linux 上写程式的人大概都碰过Makefile。用 make 来开发和编译程式的确很方便,可是要写出一个 Makefile就不简单了,手写Makefile是比较困难并且容易出错的,这阻挡了很多一部分的linux爱好者加入linux程序开发的阵营。作者:孙高勇

向远处看的专栏 1118

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

gcc与cmake、qmake与make、ninja

gcc gcc是GNU Compiler Collection(GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。当你的程序只有一个源文件时,直接就可以用gcc命令编译它。 但是当你的程序包含很多个源文件时,用gcc命令逐个去编译时,你就很容易混乱而且工作量大,**所以出现了make工具 **。 make make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用ma

weixin_44596212的博客 1761

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

qmake简介

1.简介: qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。是qt工具包的一部分.在 Unix&linux上写程式的人大概都碰过Makefile。用 make 来开发和编译程式的确很方便,可是要写出一个 Makefile就不简单了,手写Makefile是比较困难并且容易出错的,这阻挡了很多一部分的linux爱好者加入linux程序开发的阵营。 虽 然Open Source Software也有GNU Automake和GNU Autoconf两个软件可以生

eurostar2010的博客 3905

Mac端 Qt(qmake)从txt到程序的方法

时间有限,本篇文章只介绍基本思路,对于内部程序的编写及运用,不涉及! 目录一、创建txt文件二、打开终端,cd到目录,准备qmake三、执行qmake、make四、运行程序五、多文件程序实例 一、创建txt文件 首先创建一个txt文件,除满足以下某些条件,名字随意,路径随意。 1、最好纯英文,中文路径及名称可能编译错误 2、该路径下不含其他头文件和cpp文件 打开txt,编写程序代码: #include <QApplication> #include <QDialog> #inclu

yc__coder的博客 648
上一篇: 让你平步青云的10个谈话技巧
下一篇: Linux技巧小总结(转)
滴水禅师
博客等级 码龄22年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值