31

为了简化情况,假设有 2 个文件:core.cppmain.cpp.

core.cpp包含程序的功能并main.cpp包含基本main()实现。

我想要 Qt(使用 qmake 和 .pro 文件)

  • 先建core.a
  • 使用它并main.cpp构建main.exe.

如何在 qmake 文件中进行设置?

4

2 回答 2

35

文件系统布局:

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
于 2012-04-05T21:39:34.067 回答
0

如果您正在使用静态库中的资源,您也应该将它们导入您的应用程序中。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
于 2019-03-02T20:54:01.253 回答