一、创建并编译库
创建项目,选择Library下的C++ Library
2.选择shared library
3.此时创建的项目的.pro文件如下:
QT -= gui
TEMPLATE = lib
DEFINES += Data_LIBRARY
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
library.cpp
HEADERS += \
Data_global.h \
library.h
unix {
target.path = /usr/lib
INSTALLS += target
}
创建Qt动态库的时候,会自动创建一个xx_global.h的文件,这个文件主要是为了Windows平台下的库调用时需要符号导出才能使用而准备的。一般情况下,我们也可以不要。当然了,如果你直接写在头文件中也行的。
4.可设置生成库的位置
win32:{
!contains(QT_ARCH, i386):{
CONFIG(release, debug|release):{
DESTDIR = $$PWD/../lib/win/x64/release
}
else:CONFIG(debug, debug|release):{
DESTDIR = $$PWD/../lib/win/x64/debug
}
}
else:{
CONFIG(release, debug|release):{
DESTDIR = $$PWD/../lib/win/x86/release
}
else:CONFIG(debug, debug|release):{
DESTDIR = $$PWD/../lib/win/x86/debug
}
}
}
5.构建程序即可得到.a和.dll文件
.a静态库 编译程序时使用 静态库的使用需要和头文件.h一同使用。
.dll动态库 运行程序时使用
补充:
静态库:.a为MinGw编译器编译的库 .lib为MSVC编译器编译的库
二、添加库文件
1.右击文件名称或者.pro程序,选择添加库。
2.选择外部库
3.点击浏览选择库,去掉Windows下的选项,如果只在Windows下使用,将平台下的Linux和Mac取消勾选。
4.点击完成
5.生成如下代码
win32:{ #Windows下
!contains(QT_ARCH, i386):{ #x64
CONFIG(release, debug|release):{ #release
DESTDIR = $$PWD/../bin/win/x64/release
LIBS += -L$$PWD/../lib/win/x64/debug/ -lShareLib
}
else:CONFIG(debug, debug|release):{ #debug
DESTDIR = $$PWD/../bin/win/x64/debug
LIBS += -L$$PWD/../lib/win/x64/debug/ -lShareLib
}
}
else:{ # x86
CONFIG(release, debug|release):{ #release
DESTDIR = $$PWD/../bin/win/x86/release
LIBS += -L$$PWD/../lib/win/x86/release/ -lShareLib
}
else:CONFIG(debug, debug|release):{ #debug
DESTDIR = $$PWD/../bin/win/x86/debug
LIBS += -L$$PWD/../lib/win/x64/debug/ -lShareLib
}
}
}
unix:!macx{ #Linux下
!contains(QT_ARCH, i386):{ #x64
CONFIG(release, debug|release):{ #release
DESTDIR = $$PWD/../bin/linux/x64/release
LIBS += -L$$PWD/../lib/linux/x64/release/ -lShareLib
}
else:CONFIG(debug, debug|release):{ #debug
DESTDIR = $$PWD/../bin/linux/x64/debug
LIBS += -L$$PWD/../lib/linux/x64/debug/ -lShareLib
}
}
else:{ # x86
CONFIG(release, debug|release):{ #release
DESTDIR = $$PWD/../bin/linux/x86/release
LIBS += -L$$PWD/../lib/linux/x86/release/ -lShareLib
}
else:CONFIG(debug, debug|release):{ #debug
DESTDIR = $$PWD/../bin/linux/x86/debug
LIBS += -L$$PWD/../lib/linux/x86/debug/ -lShareLib
}
}
}