Qmake 编译调试

合集下载

qmake 参数

qmake 参数

qmake 参数
qmake是Qt开发工具中的一个重要组成部分。

它是一种能够自动生成Makefile的工具,并且能够根据平台和编译器的差异自动调整编译选项,从而实现跨平台编译。

在使用qmake的过程中,我们可以通过一些参数来指定编译选项和生成规则,以便更好地满足我们的需求。

以下是一些常用的qmake参数:
1. CONFIG:指定编译选项,例如debug、release、static、shared 等。

2. SOURCES:指定源文件,可以是单个文件或者多个文件。

3. HEADERS:指定头文件,可以是单个文件或者多个文件。

4. LIBS:指定链接的库文件,可以是单个文件或者多个文件。

5. INCLUDEPATH:指定头文件搜索路径,可以是单个目录或者多个目录。

6. LIBSPATH:指定库文件搜索路径,可以是单个目录或者多个目录。

7. TARGET:指定生成的可执行文件或者库文件名。

8. TEMPLATE:指定生成规则,可以是app、lib、subdirs等。

9. DESTDIR:指定输出路径,生成的可执行文件或者库文件会放在该目录下。

10. QMAKE_CXXFLAGS:指定编译器选项,例如-Wall、-O2等。

以上是一些常见的qmake参数,我们可以根据需求灵活地组合使用,以便生成符合我们要求的Makefile。

qt4的配置与qmake、cmake

qt4的配置与qmake、cmake

目录1.写这篇文档的目的 (1)2.什么是框架? (1)3.关于Qt (1)4.本文档说明的范围 (2)5.Qt的下载官网 (2)5.1 Qt4的32位二进制文件的下载 (2)6.Qt4编程的简单介绍 (4)6.1 设置环境变量 (4)6.2编程、生成工程文件并编译运行 (5)6.2.1编写“著名的”hello程序 (5)6.2.2生成工程文件并编译 (7)6.3编译运行程序 (9)6.3.1 Debug和Release的区别是什么? (11)7.qmake (11)7.1 qmake命令为我们做了什么? (11)7.1.1认识开源框架的文件架构 (12)7.1.2 qmake命令生成的VC++工程文件 (13)7.2 项目文件(.pro) (21)7.2.1 pri文件和prf文件 (22)8. cmake (23)8.1关于CMakeList.txt (30)9. Qt Creator和Visual Studio Add-in for Qt4的使用(选看) (30)9.1 Qt Creator (30)9.2 Visual Studio Add-in for Qt4(VS2010的Qt4插件) (36)10. Qt Jambi(选看) (38)1.写这篇文档的目的之所以写这篇文档,是因为我们做项目或研究IT技术的时候,会用到别人的开源框架(当然也可以自己原创一个框架,但是由于现在国内对于知识产权的氛围并不好,或者高端技术只是集中在少数人手中,所以搞这个的人不多),而别人的开源框架可能会用到Qt,或者qmake、cmake。

这时我们就会有中途被卡住的感觉,因为出现了一个新的不懂的工具,顿时觉得困难重重。

如果要看一本Qt的书的话又觉得篇幅太大,因为有时我们只是想着先把这个开源框架安装(编译)了再算,完成第一步先,以后再看书还不迟,这样的话只要对Qt有一个大概的了解即可,就不用再慢慢把Qt的书看完了,这样既打乱了计划,又耗费了时间。

qmake静态编译参数

qmake静态编译参数

qmake静态编译参数
1. CONFIG,使用`CONFIG += static`来告诉qmake生成静态链接的可执行文件。

2. QT,使用`QT += core gui`来包含Qt核心和GUI模块,根据你的项目需要添加其他模块。

3. DEFINES,使用`DEFINES += YOUR_DEFINE`来添加你需要的宏定义。

4. LIBS,使用`LIBS += -L/path/to/your/libs -lYourLibrary`来指定链接静态库的路径和库名。

5. INCLUDEPATH,使用`INCLUDEPATH +=
/path/to/your/includes`来指定头文件的搜索路径。

6. QMAKE_LFLAGS,使用`QMAKE_LFLAGS += -static`来告诉编译器生成静态链接的可执行文件。

7. QMAKE_CXXFLAGS,使用`QMAKE_CXXFLAGS += -static`来告
诉编译器生成静态链接的可执行文件。

8. QMAKE_CFLAGS,使用`QMAKE_CFLAGS += -static`来告诉编译器生成静态链接的可执行文件。

以上参数可以根据你的具体项目需求进行调整和扩展,确保你的项目能够成功进行静态编译。

另外,需要注意的是,静态编译可能会增加可执行文件的大小,并且需要确保你有权利进行静态链接的库文件。

希望这些信息能够帮助到你。

qt creator 编译参数

qt creator 编译参数

qt creator 编译参数
Qt Creator是一个集成开发环境(IDE),用于开发基于Qt框架的应用程序。

编译参数是指在使用Qt Creator进行项目编译时,可以设置的一些参数,以便对编译过程进行定制或优化。

首先,编译参数可以包括编译器选项,比如优化级别、调试信息、目标平台等。

在Qt Creator中,你可以通过项目文件(例如.pro文件)来设置这些编译参数。

比如,你可以在.pro文件中使用QMAKE_CXXFLAGS变量来设置C++编译器的参数,比如优化级别和调试信息等。

类似地,你可以使用QMAKE_CFLAGS来设置C编译器的参数。

另外,编译参数还可以包括链接器选项,比如库路径、链接的库等。

同样地,你可以在项目文件中使用QMAKE_LFLAGS变量来设置链接器的参数,比如库路径和需要链接的库等。

除了项目文件中的设置,Qt Creator还提供了图形化界面来设置编译参数。

在项目的构建设置中,你可以找到编译器和链接器的设置选项,可以方便地进行设置和调整。

此外,Qt Creator还支持使用CMake作为项目的构建系统,因
此你也可以通过CMakeLists.txt文件来设置编译参数。

总的来说,Qt Creator提供了多种灵活的方式来设置编译参数,以满足不同项目的需求。

通过项目文件、图形化界面或CMakeLists.txt文件,你可以定制和优化项目的编译过程,以获得
更好的性能和效果。

qmake编译选项的控制CONFIG(debug,debugrelease)

qmake编译选项的控制CONFIG(debug,debugrelease)

qmake编译选项的控制CONFIG(debug,debugrelease)在 Qt 编程中,多数⼈⽤的都是 qmake,并编写相应pro⽂件。

实际中经常需要对 debug 与 release 两种编译模式设置不同的选项,⽐⽅说链接不同库遇到该问题,简单看看qmake的manual,不少⼈都会写出类似下⾯的内容:debug {LIBS += -L../lib1 -lhellod}release {LIBS += -L../lib2 -lhello}很不幸,这么做通常不能正常⼯作。

如果打开看⽣成的makefile⽂件,会发现⽆论是debug还是release,上⾯的两个语句都会同时起作⽤。

也就是说,上⾯相当于LIBS += -L../lib1 -lhellod -L../lib2 -lhello原因这是很违反直觉的,因为CONFIG可以同时定义 debug 和 release,但只有⼀个处于active(当两个互斥的值出现时,最后设置的处于active状态)⽐如:CONFIG = debugCONFIG += release...这种情况下,release处于active状态,但,debug 和 release 都能通过上⾯的测试。

如何解决CONFIG(debug, debug|release) {LIBS += -L../lib1 -lhellod} else {LIBS += -L../lib2 -lhello}或CONFIG(debug, debug|release):LIBS += -L../lib1 -lhellodCONFIG(release, debug|release):LIBS += -L../lib2 -lhello那么,CONFIG(debug, debug|release) 这种语法是什么含义呢?两个参数,前者是要判断的active的选项,后者是互斥的选项的⼀个集合。

qmake 乱乱乱谈

qmake 乱乱乱谈

qmake 乱乱乱谈∙不想太深入地去看qmake,可是,左等,右等,总不见Qt新的构建系统有什么新消息。

还是整理一下qmake吧,由于没什么主题,还不知道本文最终会乱到什么程度。

注:你可能会对下面的内容感兴趣。

∙浅谈qmake 之pro、pri、prf、prl文件∙浅谈qmake 之shadow build∙qmake 之CONFIG(debug, debug|release)∙qmake 之CONFIG 与QT 乱谈这4中用法区别何在?没有例子我还真说不明白...$$varName例子:∙test.pro运行qmake时,输出结果是∙何时加大括号?当变量和后面的字符连接到一块的时候。

∙build_pass干嘛用的?自己试试看吧,如果没有它,同样的消息在windows下会被输出3次(因为会生成3个makefile文件,每个一次)。

$$(varName)环境变量,就是大家通常说得环境变量。

例子:∙test.pro运行qmake时,结果:makefile被处理时,环境变量的值?如何理解??看例子:∙test.pro执行qmake生成的makefile:为了对比,可以将单$符号,改成$$再试试看看,运行命令,结果:Qt配置选项的值?何解??∙配置选项值有哪些?∙有什么用呢?比如,我们编译一个动态库,想将dll放置到Qt的bin目录下(供其它程序使用):∙除了这些还有其他值么?恩,你可以自己设置一些值,比如然后就可以在pro文件内用$$[dbzhang] 了注:在Qt5下,有qmake -unset dbzhang可以取消设置,在Qt4下没有unset!注:设置值是通过QSettings保存的。

你应该知道保存在何处了,呵呵晕死,4个这东西竟然写了这么长。

只好本文标题中加个(一),慢慢写二三四了。

参考∙/wiki/Qt_Modules_Maturity_Level∙/2009/10/12/to-make-or-not-to-make-qmake-and-beyo nd/∙/2009/10/14/to-make-or-not-to-make-qmake-and-beyo nd-redux/暂定主题:qmake之命令行参数及qmake启动时加载了什么东西,或许可以借此学习一下qmake是处理命令行参数的方法命令行参数运行qmake -h 可以得到qmake大部分命令行参数及其说明。

使用VSCode编译调试QT程序

使用VSCode编译调试QT程序

使⽤VSCode编译调试QT程序预备知识1. bat⽂件,或者其他的脚本语法。

2. qmake基本语法,qmake shadow build是啥。

3. vscode 的task,lanch的配置。

前提1. 各个程序正确安装,即使⽤QtCreator可以正常编译调试。

2. 使⽤QtCreator⽣成⼯程。

这⾥演⽰的是使⽤MSVC + CDB,因此VS和windows调试⼯具要装好。

当然也是可以使⽤GCC + GDB的。

脚本我这⾥使⽤bat⽂件。

bat⽂件如下:debug版本--build_debug.cmd@echo offtitle qmake and nmake build promptset VCINSTALLDIR=D:\Microsoft Visual Studio 14.0\VCset QTDIR=D:\Qt\Qt5.9.1\5.9.1\msvc2015_64set PATH=%VCINSTALLDIR%\bin;%QTDIR%\bin;D:\7-Zip;%PATH%::shadow buildcd ..set file = tips-build-debug-msvc2015_64if NOT exist %file% ( mkdir tips-build-debug-msvc2015_64cd tips-build-debug-msvc2015_64call "%VCINSTALLDIR%\vcvarsall.bat" amd64qmake ../tips/tips.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"nmakecd debug::windeployqt tips.exe::tips.exe注意点:1. namke 也可以换成QT默认的jom。

2. windeployqt 这个是QT⾃带的部署⼯具,可以搜素exe的所有依赖dll。

Qt5.9.1qmake中文手册

Qt5.9.1qmake中文手册

Qt5.9.1qmake中⽂⼿册Qt5.9.1 qmake中⽂⼿册来源:/qm843230255/article/details/77584969qmake ⼿册qmake⼯具有助于简化跨平台项⽬的开发.它⾃动⽣成Makefiles,只需要很少的信息就可以创建Makefiles。

⽆论是Qt项⽬或者是其他软件项⽬,都可以使⽤qmake。

qmake通过项⽬⽂件(.pro)⾥提供的信息⾃动⽣成Makefiles.项⽬⽂件(.pro)由开发者创建,通常项⽬⽂件(.pro)都很简单,⼤型复杂的项⽬也可以通过项⽬⽂件(.pro)创建。

qmake包含的附加功能⽀持Qt跨平台开发,qmake可以为和⾃动⽣成编译规则。

qmake可以在⽆需修改项⽬⽂件(.pro)的情况下⾃动⽣成Microsoft Visual studio项⽬。

⽬录⼤纲预览qmake⼯具提供了⼀个管理应⽤程序,库和其他组件的⾯向项⽬的系统。

可以使你控制项⽬⾥的所有源⽂件,并简明描述了构建过程中每⼀步的信息。

qmake扩展了每个项⽬中在编译和连接中运⾏必要命令的Makefile⽂件中的信息。

描述项⽬Qt项⽬通过项⽬⽂件(.pro)⽂件内容来描述这个项⽬。

qmake利⽤项⽬⽂件(.pro)中的信息⽣成Makefiles,Makefiles包含了编译项⽬所需的所有命令。

项⽬⽂件(.pro)通常包含源⽂件和头⽂件的列表,通⽤的配置信息和特定应⽤程序细节, 例如外部库链接列表,或者外部头⽂件包含⽬录列表等。

项⽬⽂件(.pro)可以包含许多不同类型的元素,包括注释,变量声明,内置函数和⼀些简单的控制结构。

⼀些最简单的项⽬中, 只需声明⽤于构建基本的配置选项的源⽂件和头⽂件。

更多关于如何创建⼀个简单的项⽬⽂件,请参考。

你可以为更复杂的项⽬创建复杂的项⽬⽂件(.pro)。

预览项⽬⽂件,参见。

关于项⽬⽂件(.pro)中使⽤变量和函数的详细信息,请看.你可以使⽤⼀个应⽤程序或者库的项⽬模板,通过指定专门的配置来调整构建过程。

qmake使用手册【精选文档】

qmake使用手册【精选文档】

qmake的介绍qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile 的工具。

手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile.使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。

qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码。

Trolltech 公司使用qmake作为Qt库和Qt所提供的工具的主要连编工具. qmake也注意了Qt的特殊需求,可以自动的包含moc和uic的连编规则。

安装qmake当Qt被连编的时候,默认情况下qmake也会被连编.这一部分解释如何手工连编qmake。

如果你已经有了qmake,可以跳过这里,请看10分钟学会使用qmake。

手动安装qmake在手工连编Qt之前,下面这些环境变量必须被设置:•QMAKESPEC这个必须设置为你所使用的系统的平台和编译器的组合。

举例来说,加入你使用的是Windows和Microsoft Visual Studio,你应该把环境变量设置为win32-msvc。

如果你使用的是Solaris和g++,你应该把环境变量设置为solaris—g++。

当你在设置QMAKESPEC时,可以从下面的可能的环境变量列表中进行选择:aix—64 hpux-cc irix—032 netbsd—g++ solaris—ccunixware7—g++ aix—g++ hpux—g++ linux-cxx openbsd—g++solaris—g++ win32—borland aix—xlc hpux—n64 linux—g++openunix-cc sunos—g++ win32-g++ bsdi—g++ hpux-o64 linux-iccqnx—g++ tru64—cxx win32—msvc dgux—g++ hurd-g++linux—kcc reliant-64 tru64-g++ win32—watc freebsd—g++ irix—64 macx-pbuilder reliant—cds ultrix-g++ win32-visa hpux-acc irix-g++macx-g++ sco—g++ unixware-g hpux—acc irix-n32 solaris-64unixware7-ccenvvar是下面之一时,环境变量应该被设置到qws/envvar:linux—arm—g++ linux-generic—g++ linux—mips-g++linux—x86—g++ linux—freebsd—g++ linux—ipaq-g++linux—solaris—g++ qnx—rtp-g++•QTDIR这个必须设置到Qt被(或者将被)安装到的地方。

qmake使用技巧

qmake使用技巧

2.安装qmake在linux平台上,安装完qt以及相关的qt工具包,qmake就已经被安装好了.你唯一要注意的就是QTDIR值的设定,这个必须设置到Qt被安装到的地方。

如:/usr/lib/qt3/,以及qmake可执行文件的路径加到PA TH路径中.3. 一个简单的例子用vi写个hello.c ,#include <stdio.h>int main(int argc, char** argv){printf("Hello, world!\n");return 0;}创建qmake需要的项目文件(hello.pro),SOURCES = hello.cppCONFIG += qt warn_on releaseMakefile可以像这样由".pro"文件生成:qmake -o Makefile hello.pro现在你的目录下已经产生了一个Makefile 文件,输入"make" 指令就可以开始编译hello.c 成执行文件,执行 ./hello 和world 打声招呼吧!打开这个Makefile文件看看,是不是很专业啊!4.高级操作技巧当然,在实际使用过程中,我们的工程不可能象这个程序这样简单的,它可能有多个目录,多个头文件,多个源文件,需要链接器它不同的链接库等等情况。

别急,让我和你慢慢道来。

这些都是非常容易用qmake来实现的。

我们从一个更加复杂的项目文件为例和你详细的讲诉qmake的高级技巧:项目文件示例:SOURCES += myqt.cppSOURCES += main.cppHEADERS += myqt.hFORMS += xsimform.uiTEMPLATE = libCONFIG += debug warn_on qt thread x11 pluginTARGET = ../bin/panel_qtINCLUDEPATH = ../../../../xsim ../../../../xsim/IMdkitDEFINES = BDB_VERSION4 OS_LINUX从这个文件可以知道,SOURCES变量指向项目中的源文件,当项目中有多个源文件时,我们需对项目中的每一个源文件都这样做,直到结束:SOURCES += hello.cppSOURCES += main.cpp当然,如果你喜欢使用像Make一样风格的语法,你也可以写成这样,一行写一个源文件,并用反斜线结尾,然后再起新的一行:SOURCES = hello.cpp main.cppHEADERS变量指向项目中的头文件,多个头文件的时候,和多个源文件的解决方法一致。

qmake编译

qmake编译

qmake编译qmake是Qt中的一个构建工具,它可以根据项目中的.pro文件生成相应的Makefile,方便跨平台编译和构建Qt应用程序。

下面将分步骤阐述如何使用qmake编译Qt程序。

1. 编写.pro文件在Qt项目的根目录下新建一个.pro文件,这个文件包含了项目的基本信息和构建规则。

一个简单的.pro文件如下所示:```QT += widgetsTARGET = myappTEMPLATE = appSOURCES += main.cpp \mywidget.cppHEADERS += mywidget.h```其中,QT变量指定使用哪个Qt库(这里使用widgets库),TARGET指定生成的应用程序文件名,TEMPLATE指定构建的类型(这里是应用程序),SOURCES列出所有的源代码文件,HEADERS列出所有的头文件。

2. 生成Makefile在项目根目录下,执行以下命令生成Makefile文件:```qmake```此时会在项目目录中生成一个Makefile文件,用于编译和链接项目中的代码。

3. 编译项目在项目目录下执行以下命令编译项目:```make```此时会编译项目中的源代码文件,生成可执行文件myapp。

4. 运行程序在项目目录下执行以下命令运行程序:```./myapp```此时会启动生成的应用程序myapp。

总结本文介绍了使用qmake编译Qt程序的基本步骤,通过编写.pro文件生成Makefile,然后通过make命令进行编译,最终生成可执行文件。

qmake还支持很多高级特性,例如自定义构建规则、多平台构建等,可以根据实际需求进行使用。

qt make debug编译

qt make debug编译

Qt是一个跨评台的C++应用程序开发框架。

在Qt中,我们经常会用到编译和调试工具,其中qt make debug编译是一个常见的操作。

下面就来详细介绍一下qt make debug编译的相关内容。

一、qt make debug编译的概念在Qt中,qt make debug编译是指以调试模式进行编译。

在调试模式下,编译器会保留一些额外的信息,以便我们在调试程序时能够更方便地定位问题。

这些额外的信息包括符号表、调试信息等。

qt make debug编译得到的可执行文件会比release模式下的可执行文件大很多,但在调试程序时会更加方便。

二、进行qt make debug编译的步骤1. 打开Qt Creator,打开你要进行调试的项目。

2. 在Qt Creator的左侧项目栏中选择“项目”,然后选择“构建运行”选项卡。

3. 在“构建运行”选项卡中,选择“构建步骤”。

4. 在构建步骤中,可以看到有debug和release两种模式。

选择debug模式。

5. 点击“运行”按钮,Qt Creator会开始进行qt make debug编译,直到编译完成。

三、qt make debug编译的注意事项在进行qt make debug编译时,有一些需要特别注意的事项。

1. 由于debug模式下会生成大量的调试信息,编译时间会比release模式下长很多。

因此建议在调试程序时使用debug模式,在发布程序时使用release模式。

2. 在调试完成后,要记得切换回release模式进行发布程序,以减小可执行文件的体积。

3. 在进行qt make debug编译时,要确保代码的质量和稳定性,尽量避免在debug模式下出现编译错误和警告。

四、qt make debug编译的优缺点qt make debug编译有其优点和缺点。

1. 优点:在调试程序时更加方便快捷,能够更快地定位和解决问题。

在debug模式下生成的可执行文件包含了大量的调试信息,能够更好地帮助我们了解程序的内部运行机制。

qmake的介绍

qmake的介绍

qmake的介绍qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。

手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile。

使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。

qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码。

Trolltech公司使用qmake作为Qt库和Qt所提供的工具的主要连编工具。

qmake也注意了Qt的特殊需求,可以自动的包含moc和uic的连编规则。

安装qmake当Qt被连编的时候,默认情况下qmake也会被连编。

这一部分解释如何手工连编qmake。

如果你已经有了qmake,可以跳过这里,请看10分钟学会使用qmake。

手动安装qmake在手工连编Qt之前,下面这些环境变量必须被设置:*QMAKESPEC这个必须设置为你所使用的系统的平台和编译器的组合。

举例来说,加入你使用的是Windows和Microsoft Visual Studio,你应该把环境变量设置为win32-msvc。

如果你使用的是Solaris和g++,你应该把环境变量设置为solaris-g++。

当你在设置QMAKESPEC时,可以从下面的可能的环境变量列表中进行选择:aix-64 hpux-cc irix-032 netbsd-g++ solaris-cc unixware7-g++ aix-g++ hpux-g++ linux-cxx openbsd-g++ solaris-g++ win32-borland aix-xlc hpux-n64 linux-g++ openunix-cc sunos-g++ win32-g++ bsdi-g++ hpux-o64 linux-icc qnx-g++ tru64-cxx win32-msvc dgux-g++ hurd-g++ linux-kcc reliant-64 tru64-g++ win32-watc freebsd-g++ irix-64 macx-pbuilder reliant-cds ultrix-g++ win32-visa hpux-acc irix-g++ macx-g++ sco-g++ unixware-g hpux-acc irix-n32 solaris-64 unixware7-ccenvvar是下面之一时,环境变量应该被设置到qws/envvar:linux-arm-g++ linux-generic-g++ linux-mips-g++ linux-x86-g++ linux-freebsd-g++ linux-ipaq-g++ linux-solaris-g++ qnx-rtp-g++*QTDIR这个必须设置到Qt被(或者将被)安装到的地方。

QT工程文件的条件编译选择与额外的编译参数配置

QT工程文件的条件编译选择与额外的编译参数配置

QT⼯程⽂件的条件编译选择与额外的编译参数配置QTCreator打开.pro⼯程⽂件后,依据不同的构建套件创建项⽬组。

在项⽬组中,点开构建步骤的“详情”,增加⼀个⾃⼰的宏定义,⽐如:DEFINES+=IMX_287然后,我们在.pro⽂件中添加:contains(DEFINES,IMX_287){# contains 'Embedded Linux'message( "Configuring for Embedded Linux CLIENT build..." )INCLUDEPATH += /opt/netconfig-imx287/include /usr/local/include /usr/lib/perl/5.18/CORELIBS += -L/opt/netconfig-imx287/lib -ldl -Wl,-E -lmQMAKE_CFLAGS += -fno-strict-aliasing -pipe -Os -Ulinux \-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Dlinux=linux# QMAKE_CFLAGS += -Wno-unused-parameter -Wunused-variable# QMAKE_CXXFLAGS += -Wno-unused-parameter -Wunused-variable} else {# contains 'Desktop Linux'INCLUDEPATH += /opt/netconfig-pc/include /usr/local/include /usr/lib/perl/5.18/CORELIBS += -L/opt/netconfig-pc/lib -ldl -Wl,-E -lmQMAKE_CFLAGS += -fno-strict-aliasing -g -O2 -Ulinux -fstack-protector -fno-strict-aliasing -pipe \-Dlinux=linux -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64# QMAKE_CFLAGS += -Wno-unused-parameter -Wunused-variable# QMAKE_CXXFLAGS += -Wno-unused-parameter -Wunused-variable}如此⼀来,在我们选择相应的项⽬配置时,qmake就会根据我们⾃定义的DEFINE来配置编译选项。

Qt configure参考

Qt configure参考

51CTO首页我的博客更多*-plugin-manifests..插件嵌入manifests.-no-qmake..........不编译qmake*-qmake.............编译qmake.不建议不编译qmake-dont-process......不生成makefiles和project文档.比-no-fast参数优先级更高*-process...........生成makefiles和project文档.-no-rtti...........不编译运行时类型信息。

*-rtti..............编译运行时类型信息。

//下面是对指令的支持,不解释了-no-mmx............Do not compile with use of MMX instructions+pile with use of MMX instructions-no-3dnow..........Do not compilewith use of3DNOW instructions+pile with use of3DNOW instructions-no-sse............Do not compile with use of SSE instructions+pile with use of SSE instructions-no-sse2...........Do not compile with use of SSE2instructions+pile with use of SSE2instructions+-direct3d..........将Direct3D支持编译进来。

检测不到direct3d sdk就不支持-no-openssl........Do not compile in OpenSSL support+pile in run-time OpenSSL supportpile in linked OpenSSL support-no-dbus...........Do not compile in D-Bus support+pile in D-Bus support and load libdbus-1dynamicallypile in D-Bus support and link to libdbus-1-no-phonon.........不将Phonon模块编译进来+-phonon............将Phonon模块编译进来(若使用的规范的c++编译器则会自动编译Phonon模块)-no-phonon-backend.Do not compile the platform-specific Phonon backend-plugin*pile in the platform-specific Phonon backend-plugin-no-webkit.........不将webkit模块编译进来,编译webkit非常耗时间。

Qt静态库的下载和安装配置-修正.

Qt静态库的下载和安装配置-修正.

Qt静态库的下载和安装配置(QML/QtQuick修正)(2015.03.31 by Winland)在Windows下使用Qt开发最后都是要发布程序的,Qt官方的库都是动态链接库,如果发布就需要一大堆的dll,而且还要记得复制plugins/platforms里面的插件,如果用到各种格式图片还要plugins/imageformats里面的插件,所以东西会越弄越多。

针对Windows部署基于Qt的软件,Qt官方有专门文档:http://doc.qt.io/qt-5/windows-deployment.html对于动态版本程序发布,官方Qt库里面也带了专门部署工具:QTDIR/bin/windeployqt ,这个本人也没用过,感兴趣的可以自己试试。

本文主要讲Qt静态库的下载、安装和配置使用。

使用静态Qt编译的程序只需要一个exe文件,就可以走遍天下都不怕。

可以自己根据Qt的源代码编译自己的静态版本Qt库,但这个过程非常耗费时间,而且如果有问题还要重新编译,比较麻烦。

幸好网上有现成编译好的静态库,所以给新手和懒人提供了方便。

一、Qt Static Builds 下载在网上寻找Qt静态库,就搜索Qt Static Builds ,目前找到两个地方有:/projects/static-qt/https:///fostersoftware/QtStaticWindows第一个是SourceForge上的项目,第二个是GitHub上的项目,这两个网站希望新手记牢了,以后要找好东西都可以去这两个网站。

GitHub上面的QtStaticWindows比较新,是5.3.2版本的,所以就选这个来做教程示范。

从GitHub网站下载东西,可以直接点击网页右边“Download ZIP”但是这个下载可能比较卡比较慢,也可能挂掉。

推荐的是安装git工具,新建QtStatic目录,在该目录里执行命令:git clone https:///fostersoftware/QtStaticWindows.git然后等待下载完成,文件就会出现在QtStaticWindows子目录里面。

qmake pro 编译

qmake pro 编译

QMake 是一个跨平台的构建系统生成器,它用于管理软件项目中的构建过程。

QMake 提供了方便的语法,使项目文件更加清晰和易于维护。

通过编写一个简单的 .pro 文件,QMake 可以自动生成适合特定编译器的Makefile。

以下是一个简单的步骤,说明如何使用QMake 来编译项目:创建 .pro 文件:在项目的根目录下创建一个名为yourproject.pro 的文件。

这个文件描述了项目的基本结构和依赖关系。

例如,一个简单的 .pro 文件可能看起来像这样:qmakeTEMPLATE = appTARGET = MyAppSOURCES += main.cpp \myfile.cppHEADERS += myfile.h运行QMake:在命令行中,导航到包含 .pro 文件的目录,并运行以下命令:cssqmake这将生成一个Makefile(通常是Makefile),该文件包含编译项目所需的指令。

3. 编译项目:运行适当的编译器来编译项目。

如果你使用的是g++,可以使用以下命令:cssmake这将使用Makefile 编译项目。

编译完成后,你将得到一个可执行文件。

在上面的例子中,可执行文件将是MyApp。

4. 运行程序:如果一切顺利,你可以运行生成的可执行文件:bash./MyApp这将启动你的应用程序。

5. (可选)安装应用程序:如果需要将应用程序安装到系统中,你可以使用合适的安装命令或工具。

具体的步骤取决于你的操作系统和需求。

6. 清理:如果你不再需要编译的中间文件和目标文件,可以使用以下命令清理构建目录:cssmake clean这将删除所有由make 命令创建的文件。

7. (可选)使用QMake 的其他功能:QMake 提供了一系列功能,如变量替换、条件语句、文件包含等,使你能够更精细地控制构建过程。

你可以查阅QMake 的文档以了解更多信息。

8. (可选)处理Qt 项目:如果你的项目是Qt 项目(使用Qt 库),你可能还需要配置Qt 环境。

qt qmake编译

qt qmake编译

qt qmake编译Qt是一个跨平台的C++应用程序开发框架,而qmake是Qt提供的一个用于构建Qt项目的工具。

使用qmake编译Qt项目是一个常见的任务,下面我将从多个角度来解释如何使用qmake进行编译。

首先,要使用qmake编译Qt项目,你需要在项目的根目录下创建一个名为.pro的文件,这个文件描述了项目的结构和依赖关系。

在这个.pro文件中,你需要指定项目的源文件、头文件、依赖的Qt模块等信息。

接下来,你可以打开命令行工具,进入到项目的根目录,然后运行qmake命令。

这将会根据.pro文件生成对应的Makefile文件,Makefile是用于指导编译器如何编译项目的文件。

一旦生成了Makefile文件,你就可以运行make命令来进行编译。

make会读取Makefile文件中的指令,然后调用相应的编译器来编译项目的源代码。

除了命令行方式,你也可以在Qt Creator这样的集成开发环境中使用qmake来编译项目。

在Qt Creator中,你可以直接打开项目的.pro文件,然后Qt Creator会自动调用qmake和make来编译项目。

另外,qmake还支持通过.pro文件生成不同平台下的项目文件,比如Visual Studio的项目文件、Xcode的项目文件等,这样你可以在不同的开发环境中使用qmake来管理项目的编译过程。

总的来说,qmake是一个强大而灵活的工具,可以帮助你管理和构建复杂的Qt项目。

通过合理编写.pro文件,你可以方便地指导qmake和make来完成项目的编译工作。

希望这些信息能够帮助你更好地理解和使用qmake进行编译。

Ubuntu下QT源码编译详细过程

Ubuntu下QT源码编译详细过程

10 .QT10.1 qt的源码编译安装编译源码的所需工具和库X11:1. apt-get install libX11-dev libXext-dev libXtst-dev2. apt-get install xorg-dev3. apt-get install libtool4. apt-get install autoconf5. apt-get install g++ARM:1 apt-get install qt3-dev-toolsapt-get install qt4-qmake2 安装触屏支持库tslib-1.4tar -zxvf tslib-1.4.tar.gzcd tslib进入tslib目录下,目录内容如图10-1所示:图10-1 tslib./autogen.sh该shell脚本的正确的执行过程如图10-2所示:图10-2 autogen.sh执行过程设置环境变量CC=arm-linux-gcc讲ac_cv_func_malloc_0_nonnull=yes重定向输入到arm-linux.cacheecho "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache执行configure文件./configure --prefix=/opt/ts/ --host=arm-linux --cache-file=arm-linux.cache执行make编译make执行make install安装make install检验是否安装成功,在/opt/ts/下面存在的四个文件夹,则安装成功,如图10-3所示:图10-3 ts安装目录X11版本编译安装过程:第一步:解压工程路径:/home/lizhangjie/install目标文件:qt-everywhere-opensource-src-4.6.3.tar.gz通过tar命令将目标文件解压到工程路径下:tar –zxvf qt-everywhere-opensource-src-4.6.3.tar.gz注意:tar.bz2结尾的压缩文件才会用到-jxvf 参数。

qmake条件编译

qmake条件编译

qmake条件编译qmake是一个在Qt开发中使用的工具,用于自动生成项目文件和构建脚本。

它通过读取.pro文件来生成构建所需的Makefile文件,并且可以根据不同的条件进行编译。

条件编译是指根据不同的条件选择性地编译代码。

在开发过程中,可能会遇到需要根据不同的操作系统、编译器或者其他条件来编译代码的情况。

qmake提供了一种简单而灵活的方式来实现条件编译。

在qmake中,可以使用一些预定义的变量来表示不同的条件。

例如,可以使用win32变量来表示当前操作系统是否为Windows。

可以使用unix变量来表示当前操作系统是否为Unix或Linux。

可以使用macx变量来表示当前操作系统是否为Mac OS X。

还可以使用debug和release变量来表示当前是在调试模式下还是发布模式下进行编译。

在.pro文件中,可以使用CONFIG变量来指定编译的配置。

例如,可以使用CONFIG += debug来指定在调试模式下进行编译。

可以使用CONFIG -= debug来取消调试模式。

可以使用CONFIG += release来指定在发布模式下进行编译。

可以使用CONFIG -= release来取消发布模式。

除了预定义的变量和配置,qmake还提供了一些条件表达式来实现更复杂的条件编译。

可以使用greaterThan()函数来比较两个版本号的大小。

可以使用exists()函数来判断文件或目录是否存在。

可以使用isEmpty()函数来判断变量是否为空。

可以使用contains()函数来判断字符串是否包含指定的子串。

在.pro文件中,可以使用条件语句来根据不同的条件执行不同的操作。

可以使用CONFIG变量来指定条件。

可以使用equals()函数来比较变量的值是否相等。

可以使用:!equals()函数来比较变量的值是否不相等。

可以使用else来指定条件不满足时执行的操作。

下面是一个使用qmake进行条件编译的示例:```# 根据操作系统选择性编译win32 {# Windows平台下的编译选项message("This is Windows platform.")SOURCES += windows.cpp}unix {# Unix或Linux平台下的编译选项message("This is Unix or Linux platform.")SOURCES += unix.cpp}macx {# Mac OS X平台下的编译选项message("This is Mac OS X platform.") SOURCES += macx.cpp}# 根据编译配置选择性编译CONFIG(debug, debug|release) {# 调试模式下的编译选项message("This is debug mode.")DEFINES += DEBUG_MODE}CONFIG(release, debug|release) {# 发布模式下的编译选项message("This is release mode.")DEFINES += RELEASE_MODE}# 根据条件选择性编译isEmpty(MY_OPTION) {# MY_OPTION变量为空时的编译选项 message("MY_OPTION is empty.")DEFINES += NO_OPTION}!isEmpty(MY_OPTION) {# MY_OPTION变量不为空时的编译选项message("MY_OPTION is not empty.")DEFINES += HAS_OPTION}```在上面的示例中,根据不同的条件选择性地添加了不同的源文件和定义了不同的宏。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Qmake 工具编译调试
2015年4月9日星期四18:38:06
1、确定qmaek 路径
[root@roger ~]# which qmake
/usr/lib/qt-3.3/bin/qmake
[root@roger ~]# which qmake-3520a
/usr/local/qt-4.5.3/bin/qmake-3520a
[root@roger ~]# which qmake-9260
/usr/local/arm/qte/bin/qmake-9260
[root@roger ~]#
本机共存三个版本的qmake,根据后缀名进行区分。

如果显示的路径不是所需要的已安装qt 版本,说明未将新版本的bin路径添加进入$PATH,使用export PATH="/usr/local/qt-4.5.3/bin:$PATH" 导入即可。

2、查看 qmake 的配置文件【重中之重】
[root@roger ~]# echo $QMAKESPEC
/usr/local/arm/qte/mkspecs/qws/linux-arm-g++
[root@roger ~]#
(若显示为空,使用
export QMAKESPEC=/usr/local/qt-4.5.3/mkspecs/qws/linux-arm-g++ 自定义设置即可;亦可直接编辑系统变量文件#vim /etc/profile)
由此可知,默认配置是qmake-9260 的arm板的编译版本;如需要编译其他配置的编译选项,可如下:
qmake -spec /usr/local/arm/qte/mkspecs/qws/linux-arm-g++ -o Makefile -spec 即指定编译环境,其后为配置文件所在的目录;
/usr/local/arm/qte/mkspecs/qws/linux-arm-g++/qmake.conf 主要内容如下:
由配置文件可知,其主要指定了编译工具、编译选项、库文件路径,用户可自定义所有参数。

所有的配置文件均在$QTDIR/ mkspecs 目录及$QTDIR/ mkspecs/qws/下,可根据需要选择相应的配置文件。

qmake-3520a -spec /usr/local/qt-4.5.3/mkspecs/qws/linux-arm-g++ -o Makefile。

相关文档
最新文档