Qt 库中添加插件办法是本篇文章要讲解的内容,前天下载了Qt 4.6.1的最新版本,编译了一夜终于编译完成,兴冲冲的把以前写好的程序也用新的版本库编译了一遍,但是问题来了。
以前写的图像处理的工具居然不支持jpeg格式了,很是奇怪。 搜索了一天得知问题出在这了:以前用的版本是4.3.3,这个版本好像一出来就支持jpeg格式,所以以前没有注意到这个问题。
现在这个4.6.1不支持了怎么办?
我们在帮助文档里可以找到答案:
To link statically against those plugins, you need to use the Q_IMPORT_PLUGIN() macro in your application and you need to add the required plugins to your build using QTPLUGIN. For example, in your main.cpp:
- #include <QApplication>
- #include <QtPlugin>
- Q_IMPORT_PLUGIN(qjpeg)
- Q_IMPORT_PLUGIN(qgif)
- Q_IMPORT_PLUGIN(qkrcodecs)
- int main(int argc, char *argv[]) {
- QApplication app(argc, argv);
- ...
- return app.exec();
- }
- In the .pro file for your application, you need the following entry:
- QTPLUGIN += qjpeg \
- qgif \
- qkrcodecs
但是这样还是不行,编译工程的时候会出先
- undefined reference to `qt_plugin_instance_qgif()’
- undefined reference to `qt_plugin_instance_qjpeg()’
等错误。
解决方法:在.pro中加入:
- LIBS += C:/Qt/4.3.3/plugins/imageformats/libqgif.a
- LIBS += C:/Qt/4.3.3/plugins/imageformats/libqjpeg.a
如果QT静态编译正确的话,你应该上面这个目录 下看到这两个文件libqgif.a和libqjpeg.a (据说以前的QT版本也可能是.lib或.o文件)
对于VS项目呢,可以在项目属性页里的 连接器->输入->添加依赖项里把库文件添加进去就可以了!
完成!
小结:Qt库中添加插件的办法的内容介绍完了,希望本篇文章对你有所帮助!更多内容请参考编辑推荐!