状況を簡単にするために、2つのファイルがあるとしましょう:_core.cpp
_および_main.cpp
_。
_core.cpp
_にはプログラムの機能が含まれ、_main.cpp
_には基本的なmain()
実装が含まれます。
Qt(qmakeおよび.proファイルを使用)に
core.a
_をビルドし、次にmain.cpp
_を使用して_main.exe
_を構築します。これをqmakeファイルに設定するにはどうすればよいですか?
ファイルシステムのレイアウト:
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
静的ライブラリのリソースを利用している場合は、それらもアプリケーションにインポートする必要があります。 Q_INIT_RESOURCE
は、リソースファイルをアプリケーションにインポートする方法です。
静的ライブラリにファイル名がmyResources.qrc
のリソースファイルがあるとします。次に、以下のようにアプリでこれを初期化する必要があります。
QApplication a(argc, argv);
Q_INIT_RESOURCE(resources); //Magic is here.
MainWindow w;
w.show();
a.exec();
.proファイルは、Masciが提供する素晴らしい例のために、以下のように変更される可能性があります。
TEMPLATE = lib
CONFIG += staticlib
HEADERS = core.h
SOURCES = core.cpp
RESOURCES += myResources.qrc