Qt 常用命令,宏,pro文件格式

本文详细介绍了qmake常用命令及其功能,包括生成pro文件、编译成库、生成vc工程文件等,并阐述了Qt常用宏、pro文件格式、环境变量和自定义变量的使用方法。此外,还提供了关于qmake、Qt和pro文件的深入理解,旨在帮助开发者高效管理和构建Qt项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:http://blog.chinaunix.net/uid-23670869-id-2391678.html (博主:xutianxi)

1.qmake 常用命令:
   qmake -project //生成pro文件,自动检查c/c++程序文件
    qmake -t lib   //生产把源码编译成库的pro工程文件
   qmake -tp vc   //根据pro文件生成vc的工程文件,qt commericial有一个绑定到vs的工具,可以在菜单栏直接打开
   qmake -r xxx.pro "CONFIG+=debug" //递归生成makefile
   moc //包含Q_OBJECT文件转换器
   rcc //Qt resource compiler
   uic //Qt ui file translator,to .h file.
2.Qt 常用宏:
   平台相关:
       Q_WS_WIN //window系统
       Q_WS_X11 //xwindow系统
       Q_WS_MAC //苹果mac系统
       Q_WS_SOL //sun的solaris系统
   其它:
       QT_OPENGL_SUPPORT //是否支援opengl
       QT_VERSION    //qt的版本,如 if QT_VERSION > 0x040601(qt > 4.6.1)
       QT_VERSION_STR //qt版本的字符串
       QT_POINTER_SIZE //指针的字节宽度 32bit=4,64bit=8
       QT_REQUIRE_VERSION //用在代码中,比如QT_REQUIRE_VERSION(argc, argv, "4.0.2");
   global常用函数:
       T qAbs(const T & value) //返回绝对值
       void qCritical(const char * msg, ...) //
       void qDebug(const char * msg, ... ) //
       void qFatal(const char * msg, ... ) //输出错误信息
       qMax(const T & value1,const T & value2 )//
       qMin(const T & value1,const T & value2 ) //
  
3.pro 文件格式:
  #: 表示到行尾均为注视,被忽略
  include: 可以包含别的文本文件,一般为*pri 例如 #include "../global.pri"
  scope{;;}: 预定义 ,如win32{} 表示在win32平台下的定义,其它忽略
  win32/unix/linux-g++/linux-g++-64: 平台宏
  DESTDIR: 产生目标文件路径
  MOC_DIR: moc转换文件路径
  RCC_DIR: 资源文件路径
  UI_DIR:ui文件转换的路径
  LIBEXT: 产生lib的后缀
  QMAKE_CFLAGS_DEBUG:
  QMAKE_CXXFLAGS_DEBUG:
  QMAKE_CFLAGS_RELEASE:
  QMAKE_CXXFLAGS_RELEASE:
  TEMPLATE: 决定生成makefile采用的模板,
   =lib 表示库文件
   =app 表示生成可执行文件
   =subdirs 表示处理子目录(在下面用SUBDIRS += **来指定那些子目录)
  TARGET: 指定目标文件名
  Qt+=: 添加额外的模块支持,例如Qt -= QtCore;Qt += network,phonon,xml,thread
  DEFINES: 添加额外的宏定义,如win下需要的export等
  DEPENDPATH: 添加以来的路径
  INCLUDEPATH: 添加头文件包含路径
  HEADERS: 需要包含的头文件
  SOURCES: 需要包含的源文件
  FORMS: 需要包含的ui文件
  RESOURCES:需要包含的资源文件
  LIBS:依赖库的路径和名称 -L{xxdirxx} -l{xxnamexx}
  CONFIG: 添加配置,如warn_on debug_and_release plugin
  TRANSLATIONS: 多国语言支持文件
  INSTALLS: 要安装的文件
  target.path: 安装的路径
  #在pro文件支持environment variables和自定义变量
  #如sources.file += $$SOURCES $$HEADERS
  #sources.path = $$DESTIN_DIR
  #INSTALLS += target source
  defineReplace(xxx): xxx为变量 ,此函数可以返回一个变量值如:$$xxx()
exists(file1,file2){error()}:检查文件是否存在
<think>我们正在处理一个关于Qt项目.pro文件编写的问题。根据用户的问题,我们需要提供如何正确编写.pro文件的指导。同时,根据系统指令,我们需要使用中文回答,并且确保LaTeX语法正确(但问题中似乎没有数学表达式,所以可能不需要使用数学格式)。另外,我们需要在回答中引用时添加引用标识。 参考提供的引用内容(引用[1]和引用[2])是关于.pro文件编写的,我们可以从中提取有用的信息来构建回答。 回答结构: 1. 介绍.pro文件的作用。 2. 详细说明.pro文件中常见的配置项及其含义。 3. 提供一些编写.pro文件的技巧或注意事项。 4. 最后,根据指令生成相关问题。 由于引用[2]提供了更详细的配置项说明,我们将主要参考引用[2]的内容。 注意:引用[1]和引用[2]的内容几乎相同,我们以引用[2]为准,因为更详细。 开始构建回答: ### 如何正确编写Qt项目中的.pro文件 在Qt项目开发中,`.pro`文件是项目配置文件,它告诉qmake如何为这个项目生成makefile。正确编写.pro文件对于项目的构建至关重要。下面将详细介绍.pro文件中的常见配置项及其编写方法。 #### 1. 注释 在.pro文件中,注释使用`#`符号,从`#`开始到行尾的内容都会被忽略。例如: ```qmake # 这是一个注释 ``` #### 2. 添加或排除Qt模块 使用`QT +=`来添加项目所需的Qt模块,使用`QT -=`来排除不需要的模块。默认情况下,Qt包含`core`和`gui`模块(对于Qt5,如果创建的是窗口应用程序,则默认包含`core gui`)。例如,如果需要使用网络模块和SQL模块,可以这样写: ```qmake QT += network sql ``` #### 3. 指定模板类型 `TEMPLATE`配置项用于指定生成哪种类型的makefile。常用的选项有: - `app`:生成应用程序的makefile(默认值)。 - `lib`:生成库的makefile。 - `subdirs`:用于多目录项目,该模板可以进入指定目录并生成相应项目的makefile。 例如: ```qmake TEMPLATE = app ``` #### 4. 指定目标文件名称 `TARGET`配置项用于指定生成的可执行文件或库的名称。例如: ```qmake TARGET = MyApplication ``` #### 5. 源文件和头文件 使用`SOURCES`指定项目的源文件(.cpp文件),使用`HEADERS`指定头文件(.h文件)。例如: ```qmake SOURCES += main.cpp \ widget.cpp HEADERS += widget.h ``` 注意:可以使用`\`来换行,也可以使用空格分隔多个文件。 #### 6. 资源文件 如果项目使用了Qt的资源系统(.qrc文件),可以使用`RESOURCES`配置项添加。例如: ```qmake RESOURCES += resources.qrc ``` #### 7. 配置选项 `CONFIG`配置项用于设置项目的配置和编译选项。例如,添加`console`选项可以在Windows下显示控制台窗口;添加`release`或`debug`选项可以指定构建类型。例如: ```qmake CONFIG += console c++11 ``` 上面的例子中,我们启用了控制台窗口并支持C++11标准。 #### 8. 包含路径和库依赖 - `INCLUDEPATH`:指定额外的头文件搜索路径。 - `LIBS`:指定需要链接的库(包括路径和库名)。 例如: ```qmake INCLUDEPATH += include LIBS += -Llib -lmylib ``` #### 9. 平台特定配置 可以使用`win32`、`unix`、`macx`等作用域来为不同平台指定不同的配置。例如: ```qmake win32 { LIBS += -lopengl32 } unix { LIBS += -lGL } ``` #### 10. 其他常用配置 - `DESTDIR`:指定生成的可执行文件或库的存放目录。 - `OBJECTS_DIR`:指定中间文件(如.o文件)的存放目录。 - `MOC_DIR`:指定moc生成的中间文件的存放目录。 例如: ```qmake DESTDIR = bin OBJECTS_DIR = temp/obj MOC_DIR = temp/moc ``` ### 编写技巧与注意事项 - 使用`+=`操作符来添加配置,避免覆盖已有的配置。 - 使用反斜杠`\`来换行,使代码更清晰。 - 对于大型项目,可以使用`include()`函数包含其他.pro文件。 - 使用`message()`函数可以在配置时输出信息,便于调试。 通过以上配置项的介绍,相信您已经对如何编写.pro文件有了基本的了解。在实际项目中,根据需求灵活组合这些配置项即可。 §§相关问题§§ 1. 如何在.pro文件中为不同平台(如Windows、Linux)设置不同的编译选项? 2. 如何在.pro文件中添加预处理器定义? 3. 如何管理Qt项目中的多目录结构? 4. .pro文件中的`CONFIG`选项有哪些常用值?它们的作用是什么? [^1]: Qt开发中如何正确的编写.pro文件及详细说明。使用过QT框架进行项目开发的小伙伴,也许都知道.pro文件,但文件里面的具体配置方式可能比较模糊。本文将详细说明文件里各配置项的含义,并对其编写方法进行归纳总结,以便各位读者可以在未来的项目开发中快速而准确地编写.pro文件。 [^2]: qt pro文件编写。使用过QT框架进行项目开发的小伙伴,也许都知道.pro文件,但文件里面的具体配置方式可能比较模糊。本文将详细说明文件里各配置项的含义,并对其编写方法进行归纳总结,以便各位读者可以在未来的项目开发中快速而准确地编写.pro文件。1.配置项详细说明注释:注释是从一行的#开始,到这一行的结束。QT +=:这个是添加QT项目需要的模块的,若项目中要排除某个模块,也可用QT -=配置项。TEMPLATE =: 这个配置项确定qmake为这个应用程序生成哪种makefile。有下面五种形式可供选择:app:建立一个应用程序的makefile,这个是默认值,若模块项未指定,将默认使用此项;lib:建立一个库的makefile;vcapp:建立一个应用程序的VisualStudio项目文件;vclib:建立一个库的VisualStudio项目文件;subdirs:这是一个特殊的模板,可以创建一个可进入特定目录并为一个项目文件生成makefile,此makfile可以调用make;</think>### 如何正确编写Qt项目的.pro文件 Qt项目的`.pro`文件是核心配置文件,它指导qmake工具生成构建所需的Makefile。以下是关键配置项的详细说明和编写规范: #### 一、基础配置项 1. **模块声明** 通过`QT +=`添加所需模块,用`QT -=`排除模块: ```qmake QT += core gui # 基础模块 QT += network sql # 添加网络和SQL模块 QT -= testlib # 排除测试模块 ``` 2. **项目类型** `TEMPLATE`指定构建目标类型: ```qmake TEMPLATE = app # 应用程序(默认) TEMPLATE = lib # 动态库/静态库 TEMPLATE = subdirs # 多级目录项目 ``` 3. **目标文件命名** `TARGET`定义生成的可执行文件或库名称: ```qmake TARGET = MyApp # 生成MyApp.exe或libMyApp.so ``` #### 二、文件管理 1. **源文件与头文件** 使用`SOURCES`和`HEADERS`组织代码: ```qmake SOURCES += main.cpp \ widget.cpp # 反斜杠换行 HEADERS += widget.h RESOURCES += icons.qrc # Qt资源文件 ``` 2. **平台差异化配置** 通过作用域区分平台: ```qmake win32 { LIBS += -luser32 # Windows专用库 } unix { LIBS += -lpthread # Linux专用库 } ``` #### 三、构建控制 1. **编译选项** `CONFIG`控制编译行为和特性: ```qmake CONFIG += c++17 debug # 启用C++17和调试模式 CONFIG -= qt # 禁用Qt特性(纯C++项目) ``` 2. **目录设置** 指定输出路径和中间文件目录: ```qmake DESTDIR = bin # 输出到./bin目录 OBJECTS_DIR = tmp/obj # 中间文件存放路径 MOC_DIR = tmp/moc # moc生成文件目录 ``` #### 四、依赖管理 1. **头文件路径** ```qmake INCLUDEPATH += /opt/include # 自定义头文件路径 ``` 2. **库链接** ```qmake LIBS += -L/usr/local/lib -lmylib # 链接自定义库 ``` #### 五、高级技巧 1. **条件判断** 使用`contains`实现条件配置: ```qmake contains(QT, network) { DEFINES += USE_NETWORK # 定义 } ``` 2. **包含子项目** 多项目管理方式: ```qmake TEMPLATE = subdirs SUBDIRS = app1 \ app2 ``` > **注意事项** > 1. 使用`+=`而非`=`避免覆盖默认配置 > 2. 路径使用正斜杠`/`保证跨平台兼容 > 3. 注释从`#`开始到行尾 > 4. 反斜杠`\`用于长命令换行[^1][^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值