qwtplot3d mingw 编译笔记

本文最初写于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


这样编译出的可执行文件就有特定的图标的。



 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值