概述
本文最初写于2010-03-17 于 sohu 博客,这次博客搬家一起搬到了这里。
版权所有,转载请注明出处。
qwtplot3d 用 Qt 和 OpenGL 实现的 Qt 控件库,效果还不错,但是好像07年之后就没有更新了。可能是作者觉得已经很完善了,不需在更新了。
qwtplot3d 在 win 平台上用 mingw 编译还挺麻烦,花了一整天时间才搞定。
首先需要修改 qwtplot3d.pro 文件。
原始的 qwtplot3d.pro 文件只考虑到了在 win 平台下使用 visual studio 来编译,没有提供 mingw 的支持。
需要修改的地方如下:
CONFIG += qt warn_on opengl thread zlib debug
修改为:
CONFIG -= debug_and_release
CONFIG += qt warn_on opengl thread zlib release
之所以要修改为 release 模式,是因为 debug 模式的动态连接库有将近 10M 大小,而且最终生成应用程序时会莫名的出错。
win32:TEMPLATE = vclib
修改为:
win32:TEMPLATE = lib
或直接注释掉也可以。
原始的qwtplot3d.pro 文件有这样一行。
linux-g++:TMAKE_CXXFLAGS += -fno-exceptions
看样子是 g++ 编译时应该加上 -fno-exceptions 选项。
因此,将
win32:CONFIG += dll exceptions
修改为:
win32:CONFIG += dll
再加上一行:
TMAKE_CXXFLAGS += -fno-exceptions
从gnuwin32 项目可以下载到 zlib 的编译好的库文件。因此注释掉下面这句。
# win32:CONFIG -= zlib
最后:
# zlib support for gl2ps
zlib {
DEFINES += GL2PS_HAVE_ZLIB
win32:LIBS += zlib.lib
unix:LIBS += -lz
}
改为:
# zlib support for gl2ps
zlib {
DEFINES += GL2PS_HAVE_ZLIB
win32:LIBS += ./libz.a
unix:LIBS += -lz
}
当然,需要把 libz.a 放到这里指定的位置,也就是当前目录下。另外,zconf.h 和 zlib.h 一定要在 gcc 的头文件搜索路径中,否则找不到这两个头文件,编译 gl2ps.c 会报很多错误。
qmake
make
就编译好了。
然就可以编译自带的例子了。
进入 examples 目录。
修改 common.pro 文件比较容易,不想细说了,改动过的地方如下,请自己对照着看吧。
CONFIG -= debug_and_release
CONFIG += qt warn_on thread release
#linux-g++:QMAKE_CXXFLAGS += -fno-exceptions
QMAKE_CXXFLAGS += -fno-exceptions
win32{
LIBS += ../../lib/libqwtplot3d.a
TEMPLATE = app
DEFINES += QT_DLL QWT3D_DLL
RC_FILE = ../icon.rc
# contains (CONFIG, release) {
#QMAKE_LFLAGS += /NODEFAULTLIB:msvcrt
# }
另外,从qwtplot3d 的代码中还学到了一招。就是如何为编译出的 exe 文件设定图标。
就是建一个 icon.rc 文件。里面添加一行:
IDI_ICON1 ICON DISCARDABLE "icon.ico"
当然,我们要有 icon.ico 文件。
然后在 pro 文件中包含如下一行:
RC_FILE = icon.rc
这样编译出的可执行文件就有特定的图标的。
最后
以上就是粗心篮球为你收集整理的qwtplot3d mingw 编译笔记的全部内容,希望文章能够帮你解决qwtplot3d mingw 编译笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复