如何让qmake生成的Makefie不链接Qt库

Qt QMake详解 一、QMake是什么 qmake 是由Qt提供的一个编译打包工具。 二、为什么要学习QMake 学会手动编译,平台移植,快速查找编译错误。 三、QT程序编译经历的步骤 编译pro生成makefile(由qmake完成)。 jom或者make编译makefile(生成界面源码,uic.exe widget.ui -o ui_widget.h;生产信号槽代码,moc.exe widget.h moc_widget.cpp)。 四、从代码到执行程序执行经历的步骤 预处理-头文件加载和宏生成cpp。 编译-c 阅读详情

在优快云上搜索了一下,大部分关于qmake的实例都是链接到Qt库,包括QtCore和QtGui。如果只是想写一个普通的C++命令行程序,链接Qt库显然是使得最终生成的程序尺寸变得臃肿,而且必须要安装庞大的Qt包。

 

那么如何让qmake不链接到Qt库呢?

默认情况下,qmake是要链接QtCore和QtGui两个库的。即使你什么也不做,因为这是默认行为。

通过以下配置可以解除这种配置。

 

简单吧,这下清净了,我们明确告知qmake这不是qt程序,只需要qmake为我们生成普通Makefile,其他什么也不要多做。

以下是我为boost asio中一个简单tcp服务器程序写的qmake工程文件:TcpServer.pro。

正如注释中提到的,运行 qmake -makefile -spec linux-g++ TcpServer.pro 生成可用linux g++编译器进行编译的Makefile。

 

如果我们将 “CONFIG –= qt” 这一行注释掉,及使用qmake的默认配置,那么来比较一下两者的差别。

qmake

下面一栏是qmake默认配置下生成的Makefile。可以清晰的看出,默认生成的Makefile增加了Qt宏定义、头文件路径、QtGui和QtCore链接库。而上面一栏是 增加了 ”CONFIG –= qt “配置的生成的Makefile,显然清爽了很多。只有我们指定的库文件。

顺带提一下,qmake中访问环境变量的方法是 $$(env_var),env_var是变量名。 注意是两个美元符加小括号包围哦 ^_^

 

qmake生成的makefile尺寸还是很精简的,可以清晰看懂。我把上面完整的Makefile贴出来。

以上Makefile作者在 ubuntu 10.04上配合boost_1_43_0 编译通过。

 

qmake也可以为C++生成windows下的 VC工程 .vcproj。这里不提,qmake文档有详细的说明,利用qmake我们可以为跨平台C++程序管理编译工程。

 

如何获取qmake

作者在ubuntu上直接执行以下软件包安装命令。

 

g++,qmake,cmake区别 一. 不使用构建工具,直接调用编译器来编译 用 cmake 构建Qt工程(对比qmake进行学习) 指定头文件目录,以及需要链接的库 g++ main.cpp -Ie:\Qt\4.7.0\include -o main -Le:\Qt\4.7.0\lib -lQtCore4 二. qmake(需要.pro) qmake的使用(可设置c编译器flag参数) 使用qmake编译QT工程... 阅读详情

相关推荐

qt4--qmake

<br />Qt4-qmake去年春天我用Qt3写了一个小软件,感觉Linux下用Qt作界面程序很方便,和Windows下的VC差不多. 所以上次ubuntu 7.10系统一安装好就将Qt3开发包安装上去。这儿顺便把以前安装Qt3软件包貼出来。<br /><br /> #sudo apt-get install qt3-dev-tools qt3-examples python-qt3 qt3-designer qt3-assistant<br /><br /> 现在Qt 的版本已经到Qt-4.3.2了

Andysun1986的专栏 5703

QT中Pro文件添加库路径注意点

用法:LIBS += -Lzzz -lxxx -lyyy zzz:库路径 xxx、yyy:库文件 库路径可以有以下的形式: -L. 表示 .pro所在目录 -L$$PRO_FILE_PWD/ 表示 .pro所在目录 -L$$PWD/ 表示 .pro所在目录 -LC:/abc/ 表示C:/abc/ 库文件可以有以下的形式: 若.pro所在目录lib下有解码库需要被链接,msvc版本为“VideoDecoder.lib”,mingw版本为“libVideoDecoder.a

王滚滚的博客 5986

编译利器qmake——关于makefile、make、cmake、qmake、make install

运行qmake的语法采用以下简单形式: qmake [模式] [选项] 文件 qmake支持两种不同的操作模式。 在默认模式下,qmake使用项目文件中的信息来生成Makefile,但是也可以使用qmake来生成项目文件。 如果要显式设置模式,则必须在所有其他选项之前指定它。 该模式可以是以下两个值之一: -makefile:qmake输出将是一个Makefile。默认为该模式。 -proj...

sksukai的博客 3646

Qt、工程文件.pro的库引入和头文件引入、INCLUDEPATH和LIBS的详细使用方法

Qt、工程文件.pro的库引入和头文件引入、INCLUDEPATH和LIBS的详细使用方法

^_^ 1万+

Qt基础之四十四:qmake构建原理

qmake构建原理。当一个项目很小的时候,直接使用编译器、链接器等编译工具,就可以把代码构建成程序。当项目越来越大时,除了需要调用编译工具编译程序,还需要做很多事情,例如:☆配置编译工具☆设置编译选项☆添加头文件☆添加第三方库☆添加资源文件☆自动增量编译,自动检测文件修改☆链接程序☆软件自动部署☆自动化测试等等完成这些步骤,需要调用几个甚至几十个工具来完成。这导致构建软件的任务变得非常繁琐,如果每次构建都需要开发者手动逐个调用工具完成,就会产生大量的、机械的重复性劳动。

草上爬的博客 1万+

全面掌握qmake与Qt Creator:构建与开发指南

为了提高项目配置的复用性和可读性,.pro文件支持定义和使用自定义变量以及宏。自定义变量:使用语法可以创建可重用的项目配置值。宏定义用于在.pro文件中定义宏,其作用类似于C预处理器。Qt Creator是Qt官方提供的集成开发环境(IDE),它专门为Qt框架下的应用开发设计。它不仅提供了代码编辑和项目管理的基本功能,还集成了Qt特有的设计工具和调试工具。本节将从界面布局和基本功能两方面进行介绍。Qt Creator的界面布局灵活,能够根据开发者的喜好进行调整。

weixin_35414260的博客 1292

Qt Creator 库设置

1 库路径     可以在*.pro文件中通过关键字LIBPATH来设定库的路径,但是在Qt Creator 2.8.1中,提示: e:\QtProject\untitled5\untitled5.pro:24: 警告:Variable LIBPATH is deprecated; use QMAKE_LIBDIR instead.    因此,改用QMAKE_LIBDIR来设定库的路径,例如

OneSea 4641

【Halcon】双目立体视觉引导机械手有序抓取,案例分享

本文介绍了一个基于双目视觉的工件定位与抓取系统。该系统使用两个工业相机组成双目视觉系统,通过标定获取相机参数,采用模板匹配算法识别任意摆放且可能交叠的工件。重点阐述了三维坐标获取方法,特别是通过Z方向高度实现有序抓取的策略。文章详细说明了系统搭建、双目标定、模板创建等关键步骤,并展示了特征点匹配和定位结果。该案例为初学者和开发者提供了双目视觉系统的基本实现参考,展示了机器视觉与机械手协同工作的典型应用场景。

机器视觉从业者 2490

QT开发中遇到的问题 连接问题

QT5 开发中,出现.obj连接问题,在本项目中 问题1:相互引用引起了.obj问题。例如:应用程序(或者动态库)A,引用了动态库B,而动态库B又想要从应用程序(动态库)A中获取一些值,那么这样子会导致相互引用,或者引用不当问题,即引用的不是动态库。这样一旦在程序中调用时就会报错,报错为.obj   无法解析的外部符号。。。   解决方法:想办法破坏相互调用 问题2:未引用动态库,找不到动态

化天际的相遇---博客 547

Linux之GTK系列教程

00、背上行囊1——程序员学习之道 01、背上行囊2——为什么要学习GTK 02、背上行囊3——GUI概述 03、背上行囊4——GTK简介 04、背上行囊5——GTK环境搭建( Linux ) 05、背上行囊6——GTK环境搭建( windows ) 06、踏上旅途1——一个简单的空白窗口 07、踏上旅途2——控件的添加 08、踏上旅途3——布局容器之水平布局 09、踏上旅途

每天积累一点点 2万+

利用Matlab高效处理Comsol仿真数据的可视化技巧

本文详细介绍了如何将Comsol仿真数据高效导入Matlab并进行专业可视化与后处理。核心内容包括正确的数据导出格式设置、三维矩阵重构方法、二维截面与三维体渲染技巧,以及基于Matlab的定量分析与批处理自动化流程,帮助工程师和科研人员深度挖掘仿真数据价值,提升工作效率。

weixin_29065791的博客 362

Qt自学之路(一):qmake

qmake自学内容汇总

qq_30574227的博客 2600

华为2288H-V5服务器做raid的详细步骤

操作步骤 服务器启动界面 按del键进入设置输入密码,2288H-v5默认密码是Admin@9000 移动光标选择device manager 驱动管理选择configurationutility 配置管理 选择main menu 主菜单 选择第一个 configuration management 配置管理 选择create virtual driver 创建虚拟驱动选择select RAID level 选择RAID等级选择level-5 选择select drivers 选择驱......

weixin_46041124的博客 1万+

Qt 编译方式之 qmake

Qt 的帮助文档中对于 qmake 是这样介绍的:qmake工具有助于简化不同平台上开发项目的构建过程。它自动生成生成makefile,因此创建每个makefile只需要几行信息。您可以将qmake用于任何软件项目,无论它是否使用qt编写。qmake 是 Qt 工具包中带的一个非常方便的工具。可以用于生成 Makefile 以及各种工程文件,还可以生成 Microsoft Visual Studio 可以使用的项目文件等。最关键的是它可以自动解决依赖关系,不用手写 Makefile,而且是跨平台的。

billy的博客 1万+

量化策略分享之ST股弱转强,回测年化123%

本策略的核心是精选ST股票,国九条过滤,防止直接暴雷退市,只做ST股票的弱转强,弱转强的认定标准是前日涨停但昨日不涨停,昨日收盘价大于前一日最低价,昨日收盘价大于10日线,昨日成交量大于前一日的成交量但小于前一日成交量的10倍,股价大于1;这类股票强势,有资金介入,能获得超额收益。

qq_29301281的博客 1268

Qt之QMake编译转换为CMake编译

一、前言 QMake和CMake都是用来控制编译过程的构建系统,最终生成可在选择的编译器环境中使用的本机makefile和工作区。简单来说,QMake和CMake就像类似于作曲,makefile类似于乐谱,最终由编译器完成乐章的演奏。 那么QMake和CMake有什么区别呢? 对于纯Qt项目,QMake更加好用。QMake与QtCreator的相性很好,通过.pro文件指导Qt工程编译,方便又快捷。 但是,如果需要对Qt以外的第三方依赖项进行配置检查,比如一个很大的项目,其中除了Qt的部分子工程外,还有其他

阿清的随手记 1万+

【笔记】1.1 拉伸力-伸长(延伸)曲线和应力-应变曲线

过了B点后,由于颈缩导致的截面半径迅速减小,导致真应力迅速上升,切线斜率明显提高。假设试样原长为ε,在力的作用下伸长了dε,那么根据应变的定义,瞬时的应变为dε/ε,总的应变为瞬时应变的累计,假设在瞬时的条件下,试样受载荷变化量为 ΔF ,变化的截面积为 ΔA ,而且ΔA→0,那么瞬时的。由于原始的截面积和原始的标距长度为常数,故得到的曲线长相和拉伸力-伸长(延伸)曲线没啥区别。因为用的都是原始的截面积和原始的标距长度,故称为公称应力和公称应变。如果拉伸力→应力,伸长长度→应变,就会得到应力-应变曲线。

m0_73676887的博客 5270

用qt编译qmake

用qt编译qmake

qiushangren的专栏 3783

如何在飞腾平台上安装Ubuntu操作系统

注意: 若主板上配置的是NVME硬盘,在进行内核配置时,需要将内核的NEME驱动勾选上,否则移植内核时,无法找到文件系统,进不去操作系统。可以通过rufus软件将镜像做到U盘中,本次使用版本为Rufus 3.9.124 ,其他版本也可以。不要下载live版本的,没有准备网络环境,是一个头疼的事情,笔者暂时没有实现网络安装。将U盘接到主板usb口上,接上串口,显示器,,必需串口有打印才可以安装。可以通过dd命令,将iso安装到U盘。安装的是最小系统,缺少很多命令,需要联网更新,或则更换飞腾专用内核。

技术联盟 2645

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Qt编程:qmake

qmake 是 Qt 提供的跨平台构建工具,用于自动化生成 Makefile、项目文件以及在不同平台上的构建系统文件。

倔强老吕的博客 1212

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[Qt] 什么是qmake与cmake

CMake是一个跨平台的构建系统工具,用于生成不同平台的本地构建文件(如Makefile、VS工程等),但不直接编译代码。qmake是Qt专用的构建工具,自动处理Qt特有的编译步骤。CMake适用范围更广,扩展性强,已成为现代C++项目的主流选择,Qt6也推荐使用CMake。两者与编译器的关系是:CMake/qmake生成构建规则,make执行编译,编译器完成实际编译工作。Qt Creator可自动生成qmake工程文件,而CMake需手动配置CMakeLists.txt。一个简单的Qt CMake项目需指

2303_79225753的博客 1180

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

QT中的qmake详解

 关于qmake,好一段时间令我一头雾水,不知道用来干嘛的,只知道怎么用,而且也只懂那么一两个命令,详细看过资料以后整理如下: 1.首先,感性的认识是,qmake可以利用源文件(包括头文件h,实现文件cpp,qt的ui文件等等)生成各种不同类型的工程,工程需要的Makefile文件,可执行的与不可执行的,这取决于所用的模板(包括app、lib、subdirs、vcapp、vclib)。 2.创...

weixin_34397291的博客 4311

Hello Qt——QMake快速入门

一、QMake简介 qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。 qmake是一个用来简化在不同平台间开发工程的构建过程的工具。qmake会自动生成MakeFile文件,可以用于任何软件项目中,无论是否由Qt编写。 qmake会注意所有的编译器和平台的依赖性,开发者只需关注自己的代码。qmake作为Qt库和Qt所提供的工具的主要连编工具,可以自动的包含moc和uic的连编规则。 二、QMake入门教程 1、创建一个工程 创建一个应用,包含 hell

天山老妖 2494

【Qt】Qt 构建系统详解:qmake 入门到项目实战

qmake是 Qt 提供的跨平台构建系统工具,它能将.pro文件(项目描述)转换为对应平台的构建脚本,如 Makefile 或 Visual Studio 工程文件。qmake是 Qt 提供的构建系统,简洁、易上手,是管理 Qt 项目的传统利器。熟练使用.pro文件可以大大提升项目维护效率。对于大型项目,建议使用subdirs管理模块。Qt 6 官方已推荐使用 CMake,新项目可考虑迁移。通常出现在项目的顶层,用于组织多个子项目。它本身不包含代码,只是构建配置的集合。

songhuangong123的博客 3855

qt中qmake的详解

1.首先,感性的认识是,qmake可以利用源文件(包括头文件h,实现文件cpp,qt的ui文件等等)生成各种不同类型的工程,工程需要的Makefile文件,可执行的与不可执行的,这取决于所用的模板(包括app、lib、subdirs、vcapp、vclib)。 2.创建pro文件,添加各种源文件,还可以设定平台相关的不同源文件,设置各种规则,利用qmake命令生成工程。后面会介绍pro文件可

全栈工程师 5万+
上一篇: 以boost factory &amp; boost function实现对象工厂设计模式
下一篇: GNU flex unistd.h在VC下的编译问题
MPForwd
博客等级 码龄20年 7粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值