自从上篇博文写静态编译之后,好久没再折腾静态的东西了。今天心情比较好,补充一个静态链接的博文,内容来自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单独一行。
现在一切都美好了。