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

问题描述 投票:0回答:1

我了解了 Qt 中的动态和静态编译术语。有人可以解释一下其中的区别以及在实践中如何实现吗?

qt dynamic static
1个回答
1
投票

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

因此,对于静态添加这样的内容到您的项目文件中

CONFIG *= staticlib # 

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

CONFIG *= dll

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

CONFIG *= qt plugin

那么这两者有什么区别呢?

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

我更喜欢 2.,因为它可以让您更好地控制构建环境,并减少应用程序部署的错误...

© www.soinside.com 2019 - 2024. All rights reserved.