为了简化这种情况,我们假设有两个文件: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
没有project.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();
对于Masci给出的优秀示例,.pro文件可能会被修改为如下所示:
TEMPLATE = lib
CONFIG += staticlib
HEADERS = core.h
SOURCES = core.cpp
RESOURCES += myResources.qrc