如何静态和动态地编译Qt插件

时间:2011-08-02 08:17:58

标签: qt compiler-construction dynamic static

我在Qt中通过术语动态和静态编译。有人可以解释这种差异以及在实践中如何完成。

1 个答案:

答案 0 :(得分:1)

首先,您需要将动态插件编译为dll,将静态插件编译为静态库。

因此,静态将类似的东西添加到项目文件

CONFIG *= staticlib # 

动态版只是一个标准的dll,即

CONFIG *= dll

其次,指定您正在编译插件:

CONFIG *= qt plugin

那么这两者有什么区别?

  1. 动态插件是一个dll,它将构建在plugins目录中,该目录在运行应用程序时必须位于应用程序路径中。在部署应用程序时很容易忘记这一点(然后你最终可能没有缩略图等)。
  2. 静态插件需要链接到您的应用程序中(通常使用配置文件中的QTPLUGIN宏)。只使用 libs * = plugin_name 语法链接静态插件库也可以。
  3. 我更喜欢2.因为它可以让您更好地控制构建环境,并使应用程序部署减少错误......