如何将我的Qt应用程序编译成静态库?

时间:2012-02-17 01:51:48

标签: c++ qt compilation

我的主项目有一个复杂的后端(以及编译过程)。 因此,我不想介绍构建Qt Gui所需的所有额外内容。

因此,我想静态编译Qt GUI端,然后在我的构建过程中添加一点-lmygui

注意:这并不是说我希望所有的Qt库都是静态构建的(这样做会违反LGPL)。从本质上讲,它应该与我静态构建后端并将其链接到qt(这将是我的第二个选项,但是是一个较差的解决方案)相同。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

我将假设您正在使用qmake项目文件(.pro)来构建此库。如果您这样做,只需将.pro文件的TEMPLATE=app部分替换为:

TEMPLATE=lib
CONFIG+=staticlib

答案 1 :(得分:0)

简单地说,你不能这样做。 Qt需要的不仅仅是-mygui,如果你在类中使用信号和插槽,你还需要运行'moc'可执行文件,它将解析你的c ++文件并生成'moc_sources.cxx'文件,这些文件也将被编译与您的项目。没有运行moc就没有办法直接链接到qt,如果你的接口使用* .ui文件,你还需要运行uic,这将生成适当的源。