关于Qt静态库附加于主程序pro/pri写法
2021-04-13 本文已影响0人
田陌允
关于静态库附加于主程序:
(以下方法比较规范,毕竟知名github项目,一般情况下可通用)
sublibName.pro
include(../common.pri)
TARGET = sublibName
QT += core gui widgets
SOURCES += $$files($$PWD/*.cpp)
HEADERS += $$files($$PWD/*.h)
FORMS += $$files($$PWD/*.ui)
RESOURCES += $$files($$PWD/*.qrc)
common.pri(上一级目录 3rdParty)
include(../lib.pri)
# compiler stuff
win32-msvc*{
QMAKE_CXXFLAGS +=/MP
}
# output
CONFIG(debug, debug|release){
DESTDIR = $$OUT_PWD/../../lib.debug
}else{
DESTDIR = $$OUT_PWD/../../lib
}
lib.pri(再上一级目录,主程序pro同级)
TEMPLATE=lib
CONFIG+=static
include($$PWD/config.pri)
CONFIG(debug, debug|release){
DESTDIR = $$OUT_PWD/../lib.debug
}else{
DESTDIR = $$OUT_PWD/../lib
}
config.pri(主程序pro同级目录)
# compiler stuff
win32-msvc*{
QMAKE_CXXFLAGS += /MP
}
gcc{
QMAKE_CXXFLAGS += -Wno-unused-variable -Wno-unused-parameter -Wno-misleading-indentation
QMAKE_CXXFLAGS += -isystem
}
# common config
QT += core gui widgets xml opengl network printsupport svg
CONFIG += c++14
# output
CONFIG(debug, debug|release){
LIBS += -L$$OUT_PWD/../lib.debug
}else{
LIBS += -L$$OUT_PWD/../lib
MOC_DIR =../temp/moc
RCC_DIR =../temp/rcc
UI_DIR =../temp/ui
OBJECTS_DIR =../temp/obj
}
# temp dirs (unix)
unix{
MOC_DIR = $$OUT_PWD/_generated
OBJECTS_DIR = $$OUT_PWD/_generated
UI_DIR = $$OUT_PWD/_generated
RCC_DIR = $$OUT_PWD/_generated
}
关键点在于该方法只需将sublibName修改成你自己的子项目名称即可,当然用到的Qt库可以看情况增删
用于集成组件化的子库,例如
qsint-widgets,qtpropertybrowser等Qt常用控件集