目录
Qt最早是Linux系统里搞的,所以很多代码命令习惯对于常用Windows的人会有些不知其所以然。
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积。
组成一个软件的文件中.dll占据相当多一部分。
通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。 例如,一个计帐程序可以按模块来销售。 可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。 因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。
此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。
Qt的动态链接库
Qt:56---QT创建和使用动态链接库(.dll)_qt生成dll文件-CSDN博客
这里要补充一点,自己创建的C++类在完成初步的代码构建之后,用命令行进行编译,也会产生.dll文件、.o文件等文件。
关于命令行形式编译的几个要点:
- 每次修改了 pro文件最好都去做一次 qmake
- 使用make clean清除上次编译的内容。
- 如果项目比较大,可以使用make -j8 开八个线程来运行。(这里的make是在mingw32编译环境的目录下的tools文件夹下的mingw32-make程序被复制后改名的make,不是Linux里的make,当然,如果在Linux里运行g++时就能直接用make命令了)
.pro文件相关语法:
- QT += core gui widgets 表示各种 Qt 的模块除了使用 QT += widgets 如果你使用 Qt 去构建你的项目,某些模块默认加入了,还可以使用QT -= widgets 去掉这些模块。防止程序变大。
- TARGET 应用程序的名字
- TEMPLATE 指定makefile的类型
- CONFIG += console c++17 debug warn_off 将编译器警告关闭掉
- INCLUDEPATH+=. 表示包含的头文件的路径,一个点表示当前文件夹。
- LIBS +=. 包含的库文件的路径
- INCLUDEPATH += $$PWD/…… 省略号省略了自己添加的头的文件夹目录。PWD表示当前文件夹。
- LIBS += -L$$PWD/ -库名字…… -l 省略号省略了自己添加的库的文件夹目录。前面是-L 表示链接的文件夹,后面是-l,表示文件夹下具体库的名字。(在Linux上又有不同)
其他的就是源文件和头文件了。
例如:
#模块
QT += core gui
#高于4版本,添加 QT += widgets ,为了兼容Qt4
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#应用程序的名字
TARGET = mike
#指定makefile的类型, app
TEMPLATE = app
#源文件 .cpp文件
SOURCES += main.cpp\
mywidget.cpp
#头文件 .h文件
HEADERS += mywidget.h
Qt的模块添加
Qt有很多模块,可以在QC的help里找:
关于文件夹
lib | 库文件 |
include | 头文件 |
添加自己的头文件
在主函数文件中添加自己搞得头文件的时候,需要用extern "C"括起来。