为了简化情况,假设有 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
我的项目.pro:
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS = core \
app
app.depends = core
核心.pro:
TEMPLATE = lib
CONFIG += staticlib
HEADERS = core.h
SOURCES = core.cpp
应用程序专业版:
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