如何使用Qt构建静态库和可执行文件?

时间:2012-04-05 19:29:43

标签: c++ qt qmake

为了简化这种情况,我们假设有两个文件:core.cppmain.cpp

core.cpp包含该计划的功能,main.cpp包含基本的main()实施。

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

  • 首先构建core.a然后
  • 使用该main.cpp来构建main.exe

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

2 个答案:

答案 0 :(得分:32)

文件系统布局:

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

答案 1 :(得分: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