Qt工程pro文件的简单配置(尤其是第三方头文件和库)

简介: Qt开发中,pro文件是对正工程所有源码、编译、资源、目录等的全方位配置的唯一方式,pro文件的编写非常重要,以下对几个重要项进行说明(win和linux,mac平台通用配置) 注释 以”#”开始的行,直到结束 模板变量 告诉qmake生成哪种makefile TEMPLATE = app 1 其中 app -表示该工程建立一个应用程序的makefile。

Qt开发中,pro文件是对正工程所有源码、编译、资源、目录等的全方位配置的唯一方式,pro文件的编写非常重要,以下对几个重要项进行说明(win和linux,mac平台通用配置)

注释

以”#”开始的行,直到结束

模板变量

告诉qmake生成哪种makefile

TEMPLATE = app
AI 代码解读
  • 1

其中

  • app -表示该工程建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用
  • lib - 表示该工程建立一个库的makefile

生成目录

指定生成的可执行程序的目录,可以绝对和相对路径

DESTDIR += ../bin
AI 代码解读
  • 1

生成的应用程序名

软件名

TARGET = qtest
AI 代码解读
  • 1

编译选项

增添或者移除某个模块 
比如增添C++11和console支持,Qt的各模块也在这里面添加

CONFIG += console c++11 network
CONFIG -= qt
AI 代码解读
  • 1
  • 2

可以用空格分隔或者”\”来隔行

目标文件目录

obj文件存放的目录,可以绝对或相对路径

OBJECTS_DIR += ../tmp
AI 代码解读
  • 1

工程中包含的头文件

表示本工程中的头文件

HEADERS += \
    libcurl/curl/curl.h \
    libcurl/curl/curlbuild.h \
    libcurl/curl/curlrules.h \
AI 代码解读
  • 1
  • 2
  • 3
  • 4

只要qtcreator目录树里add进去了就自动添加

工程中包含的源文件

表示本工程中的源文件

SOURCES += mytest.cpp\
           main.cpp
AI 代码解读
  • 1
  • 2

只要qtcreator目录树里add进去了就自动添加

工程中包含的资源文件

表示本工程包含的资源文件

RESOURCES += qrc/painter.qrc
AI 代码解读
  • 1

只要qtcreator目录树里add进去了就自动添加,更改pro文件会同步更新qtcreator里的目录树,但不会影响硬盘上的资源文件

附加头文件包含目录

一般要编译链接第三方库时配置include目录 
例如

INCLUDEPATH += ./boost/include\
               src/thirdpart/include
AI 代码解读
  • 1
  • 2
INCLUDEPATH += D:/boost/include\
               E:/cocos2dx/include
AI 代码解读
  • 1
  • 2
  • 可以用绝对或相对路径
  • 相对路径中./可以省略
  • 路径中不允许出现空格

链接库

对于静态库(.lib, .a)以及动态库.so

LIBS += -LD:/codetest/libcurlcpp/libcurl/lib/-llibcurl\
        -LD:/codetest/libcurlcpp/libcurl/lib/-lws2_32\ -LD:/codetest/libcurlcpp/libcurl/lib/-lwldap32\ -LD:/codetest/libcurlcpp/libcurl/lib/-lopencv.so\ -LD:/codetest/libcurlcpp/libcurl/lib/-llibzmq.a
AI 代码解读
  • 1
  • 2
  • 3
  • 4
  • 5

或者

LIBS += D:/codetest/libcurlcpp/libcurl/lib/libcurl.lib\
        D:/codetest/libcurlcpp/libcurl/lib/ws2_32.lib\ D:/codetest/libcurlcpp/libcurl/lib/wldap32.lib D:/codetest/libcurlcpp/libcurl/lib/opencv.so\ D:/codetest/libcurlcpp/libcurl/lib/opencv.a
AI 代码解读
  • 1
  • 2
  • 3
  • 4
  • 5

或者

LIBS += $$PWD/libcurl/lib/libcurl.lib\
        $$PWD/libcurl/lib/ws2_32.lib\
        $$PWD/libcurl/lib/wldap32.lib 
AI 代码解读
  • 1
  • 2
  • 3
  • 4
  • 可以用-L指定目录,-l指定库的名称(无需后缀,.lib,.a, .so都适用)注意-l后面没有空格
  • 可以直接通过绝对路径和相对路径指定库的完整path(需后缀,.lib,.a, .so都适用),相对路径用$$pwd前缀,路径不允许空格
  • LIBS += somepath 这个可以多行写,也可以用“\”隔行

对于动态库dll,必须拷贝到exe执行目录或者在环境变量里配置路径

预编译宏

DEFINES += USE_OPENSSL\
           CURL_STATICLIB
AI 代码解读
  • 1
  • 2

类似于vs里面在工程里设置预编译选项

平台相关性处理

根据qmake所运行的平台来使用相应的作用域来进行处理

win32
{
    SOURCES += 1.cpp
}
else
{
    SOURCES += 2.cpp }
AI 代码解读
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

根据平台进行条件编译

目录
打赏
0
0
0
0
93
分享
相关文章
|
7月前
【qt】如何读取文件并拆分信息?
【qt】如何读取文件并拆分信息?
76 0
|
8月前
|
C++
基于QT实现的拷贝文件以及实时进度条(简易版)
1.基于按钮或者菜单栏的槽里去写逻辑函数(我这边用的是菜单栏),ui实现的进度条 2.创建两个对象,一个是源文件,一个是目标文件分别用getopenfileName、getsavefileName函数即可。 3.利用QFile类去实现对两个文件的创建,因为QFile中可以获取文件的属性已经读写等。 4.循环的去读取源文件中的数据,然后写入目标文件
655 6
Qt问题(二):无法定位程序输入点于动态链接库
动态链接库(Dynamic Link Library,简称DLL)是一种可执行文件格式,常见于Windows操作系统中,而在Linux和macOS等其他操作系统中,相似的概念通常被称为共享库(Shared Library)。动态链接库允许程序在运行时加载所需的代码和数据,而不是在编译时静态链接到应用程序中。这种方式带来了几个重要的优点:
590 3
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
通过这一连串的步骤,可以专业且有效地在Linux下为Qt编译Oracle驱动库 `libqsqloci.so`,使得Qt应用能够通过OCI与Oracle数据库进行交互。这些步骤适用于具备一定Linux和Qt经验的开发者,并且能够为需要使用Qt开发数据库应用的专业人士提供指导。
251 1
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
177 4
|
7月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
1187 4
|
7月前
|
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
303 1
|
7月前
QT 软件打包为一个单独可执行.exe文件流程
QT 软件打包为一个单独可执行.exe文件流程
1131 0
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
418 0
|
7月前
|
C++
【qt】VS中如何配置Qt环境
【qt】VS中如何配置Qt环境
275 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等