qmake笔记整理
一、QMake介绍
qmake 是由Qt提供的一个编译打包工具
二、QT程序编译流程
1、qmake编译pro文件,生成makefile。
2、jom或者make编译makefile
# 生成界面源码 uic.exe mainwindow.ui -o ui_mainwindow.h # 生产信号槽代码 moc.exe mainwindow.h moc_mainwindow.cpp
三、从代码到执行程序执行的流程
1、预处理——头文件加载和宏生成cpp。
2、编译
.cpp
到.o
或者.obj
。3、链接
so lib o obj res a
,包含静态链接和动态链接。静态链接:可以把整个隐藏掉,会把库所有用到的函数一个个复制到exe中,造成编译速度非常缓慢。
动态链接:只拷贝一个个函数的地址,不拷贝源码。
4、执行
exe dll so
。
四、配置vs和qmake环境变量执行qmake生成的makefile
1、创建
.pro
文件2、配置 qmake 和 jomx 执行路径
3、导入vs开发环境
五、qmake引入Qt库创建窗口
1、加载QT内部库
QT += widgets + 空格 + 模块名(库名)
作用:用来配置Qt系统的库,也包含头文件路径
加载Qt内部库
QT += core gui
移除某个库的加载
QT -= gui
2、a.exec() 的作用
a.exec() :使所有的消息、通讯、事件,都在当前循环处理消息队列中,达到阻塞的效果,直到整个程序退出。
3、头文件的引用
INCLUDEPATH += .../.../include + 空格 + 可以加多个路径 // 例: message($$PWD) INCLUDEPATH += $$PWD/../../include
4、库引用和库路径的指定
LIBS += -L “库路径” -l “库名” (LIBS += -L"…/…/lib" -lopencv_world320)
DESTDIR += …/…/bin (输出路径指定)
TARGET = 新的可执行文件名(指定输出可执行文件名)
六、QT创建动态库
动态库:Linux或mac下是
.so
, Windows下除了有lib
文件还有dll
,代码需要导出。静态库:Linux或mac下是
.a
, Windows下只有一个lib
文件,代码不需要导出。