Pour simplifier la situation, disons qu'il existe 2 fichiers: core.cpp
Et main.cpp
.
core.cpp
Contient les fonctionnalités du programme et main.cpp
Contient l'implémentation de base de main()
.
Je veux que Qt (en utilisant qmake et les fichiers .pro)
core.a
puismain.cpp
pour construire main.exe
.Comment configurer cela dans le fichier qmake?
Disposition du système de fichiers:
MyProject
|_ myproject.pro
|_ core
|_ core.cpp
|_ core.h
|_ core.pro
|_ app
|_ main.cpp
|_ app.pro
myproject.pro:
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS = core \
app
app.depends = core
core.pro:
TEMPLATE = lib
CONFIG += staticlib
HEADERS = core.h
SOURCES = core.cpp
app.pro:
TEMPLATE = app
SOURCES = main.cpp
LIBS += -L../core -lcore
TARGET = ../app-exe # move executable one dire up
Si vous utilisez des ressources dans votre bibliothèque statique, vous devez également les importer dans votre application. Q_INIT_RESOURCE
est le moyen d'importer un fichier de ressources dans l'application.
Supposons que vous disposez d'un fichier de ressources dont le nom de fichier est myResources.qrc
dans la bibliothèque statique. Ensuite, vous devez initialiser cela dans l'application comme indiqué ci-dessous:
QApplication a(argc, argv);
Q_INIT_RESOURCE(resources); //Magic is here.
MainWindow w;
w.show();
a.exec();
Le fichier .pro peut être modifié comme indiqué ci-dessous pour le grand exemple donné par Masci:
TEMPLATE = lib
CONFIG += staticlib
HEADERS = core.h
SOURCES = core.cpp
RESOURCES += myResources.qrc