MinGW 静态链接Qt 4.7

Posted on 2011-12-06 12:50  liuyanghejerry  阅读(997)  评论(0编辑  收藏  举报

自从上篇博文写静态编译之后,好久没再折腾静态的东西了。今天心情比较好,补充一个静态链接的博文,内容来自http://www.formortals.com/how-to-statically-link-qt-4/

 

静态编译了Qt之后,有几样东西设置了之后才能够真正将你自己的程序生成为静态的。

设置正确的Qt目录

重新编译了Qt之后,你的工程所使用的Qt目录也应当有所变化。

1、在Qt Creator中,Tools -> Options -> Qt4 选项中,将新的Qt目录添加进去

2、在工程设置中,将release的编译配置当中的Qt目录改为你添加进去的新配置

 

修改工程文件

打开你的pro文件,然后添加如下内容:

CONFIG += static
CONFIG(static) {
    CONFIG += static
    QTPLUGIN += qcncodecs
    DEFINES += STATIC
    message("Static build.")
}

这当中的qcncodecs是一个插件名,Qt静态编译之后,插件都要以这样的方式写在工程文件当中,以确保链接时能够链接进去。

注:如果不希望该选项生效,课将+=改为-=。

这里是一份相关插件名的列表:

Image formats:

  • qgif
  • qjpeg
  • qico (Windows icons)
  • qsvg (Scalable Vector Graphics)
  • qtiff

Database support:

  • qsqldb2
  • qsqlite (SQLite 3)
  • qsqlmysql
  • qsqloci (Oracle)
  • qsqlodbc
  • qsqlpsql (PostGreSQL)

Asian language codecs:

  • qcncodecs (Simplified Chinese)
  • qjpcodecs (Japanese)
  • qkrcodecs (Korean)

And finally, qtaccessiblewidgets for support of assistive technologies.

新增头文件

打开main.cpp,在顶端添加如下内容:

#ifdef STATIC
#include <QtPlugin>
Q_IMPORT_PLUGIN(qcncodecs)
#endif

每个插件都应有Q_IMPORT_PLUGIN单独一行。

 

现在一切都美好了。

Copyright © 2024 liuyanghejerry
Powered by .NET 9.0 on Kubernetes