Qt静态构建与静态mysql插件混淆

Qt静态构建与静态mysql插件混淆,mysql,qt,plugins,static,Mysql,Qt,Plugins,Static,我已经构建了一个使用MySQL库的Qt应用程序,但是我对静态构建和共享构建的文档感到困惑 从it的Qt文档中可以看出: 要部署基于插件的应用程序,我们应该使用共享库 接近 它还说: 静态链接产生一个独立的可执行文件。优点是 您将只有几个文件要部署。缺点是 可执行文件很大,没有灵活性,而且 无法部署插件。要部署基于插件的应用程序,您可以 使用共享库方法 但在另一方面,它似乎说的是相反的,给出了如何使用静态插件的方向: 插件可以针对您的应用程序进行静态链接。如果你 构建Qt的静态版本,这是包含 Qt

我已经构建了一个使用MySQL库的Qt应用程序,但是我对静态构建和共享构建的文档感到困惑

从it的Qt文档中可以看出:

要部署基于插件的应用程序,我们应该使用共享库 接近

它还说:

静态链接产生一个独立的可执行文件。优点是 您将只有几个文件要部署。缺点是 可执行文件很大,没有灵活性,而且 无法部署插件。要部署基于插件的应用程序,您可以 使用共享库方法

但在另一方面,它似乎说的是相反的,给出了如何使用静态插件的方向:

插件可以针对您的应用程序进行静态链接。如果你 构建Qt的静态版本,这是包含 Qt的预定义插件。使用静态插件进行部署 不太容易出错,但缺点是没有来自 可以添加插件,而无需完全重建和重新分发插件 应用程序。。。要静态链接这些插件,您需要 需要在应用程序中使用Q_IMPORT_PLUGIN()宏,并且 需要使用QTPLUGIN将所需插件添加到构建中

我想静态地构建Qt库(便于部署),然后使用静态MySQL插件。为此,我没有为Windows使用二进制分发。相反,我从源代码qt-everywhere-opensource-src-4.7.4开始 以下是进行静态构建的正确方法,以便我可以使用静态MySql插件吗

configure-static-debug and release-opensource-platform win32-msvc2010-no-qt3support-no-webkit-no script-plugin sql-mysql-ic:\mysql\include-lc:\mysql\lib

  • 这应该静态地构建Qt库,并在运行时链接静态插件,对吗?我不需要单独从源代码构建Mysql插件,对吗

  • 如果我在上面用“-qt-sql-mysql”替换“-plugin-sql-mysql”,它将直接在qt静态库中包含mysql驱动程序,在这种情况下,我根本不需要使用插件,对吗


  • 谢谢你让我不被承认

    你的第二个报价页应该真正说明:

    静态链接产生一个独立的可执行文件。这样做的好处是,您只需要部署几个文件。缺点是可执行文件很大,没有灵活性,并且不能部署插件
    要部署基于插件的应用程序,可以使用共享库方法

    你在最后所做的两个假设都是对的。例如,我们的qt版本的配置包括

    -plugin-sql-oci -qt-sql-sqlite
    

    plugins\sqldrivers目录仅显示qsqloci(d).lib,而与sqlite无关。

    帮助中明确指出,除了Mac OSX,您不应在任何其他平台上使用选项
    -debug and release