转自CSDN:

首先不得不说,要感谢北京邮电大学的阿科。感谢他慷慨的分享和极具科学态度的记录,将自己搜集到的众多资料收集整理发布,拯救众多苦逼寻找方案的程序员于苦海之中。因为最近接手新的项目,涉及到使用opengl做surface plot编程。第一个想到的就是能否使用现有的开源API来完成这些工作。通过多方寻找,我发现了两个开源的project:

1 qwtplot3d(http://qwtplot3d.sourceforge.net/web/navigation/feature_frame.html)

2 Sapphire-3D-Surfaces(http://qt-apps.org/content/show.php/Sapphire+3D+Surfaces?content=118944)

注意这里我使用的开发环境是Qt,语言为C++。

第二个下载源代码,再win7的Qt Creator一下就编译通过了。但是第一个却很艰难,于是各方寻找解决方案,最终在阿科的博客中找到了比较详细的解决方法,原文链接:(http://blog.csdn.net/qinpanke/article/details/8062517)

阿科的方法基本是正确的,但是在细节上与我的实际实验结果有所不同,我将以阿科的内容为基础,增加一些自己实际实验的内容。

1、从网上下载qwtplot3D的最新版本:http://qwtplot3d.sourceforge.net/

2、解压qwtplot3d-0.2.7.zip到C盘根目录下(注意:路径中不能带有中文汉字)。

3、打开C:\qwtplot3d-0.2.7\qwtplot3d,将会看到qwtplot3d.pro文件。

4、用QtCreator打开qwtplot3d.pro文件,并执行编译命令会出现如下如下错误:No rule to target 'Makefile.Debug'.  Stop.如下图所示:

          解决方法:

双击并打开上图左侧中的qwtplot3d.pro文件,修改该文件部分内容:  win32:TEMPLATE= vclib   修改为: win32:TEMPLATE= lib

5、修改完成后,再次点击编译运行。会再次出现错误:'stderr' was not declared in this scope  和  'fprintf' was not declared in this scope。 如下图所示:

解决方法:

打开左侧Source》src》qwt3d_function.cpp文件。并在顶部添加语句:#include "stdio.h"

6、再次编译。即可顺利完成qwtplot3d工程的编译,不会再遇到错误。

(这个地方实际还是会有错误的,会出现红色的输出提示“The process could not be started!”,但是已经生成了C:\qwtplot3d-0.2.7\qwtplot3d-build-desktop\lib目录下面的libqwtplot3d.a和qwtplot3d.dll,只要生成了就可以了,由上面的错误没有关系)

此时,打开C:\qwtplot3d-0.2.7\qwtplot3d-build-desktop\lib文件夹。会看到生成两个动态库文件:libqwtplot3d.a和qwtplot3d.dll。这就是编译好的qwtplot3d的动态库文件。作为开发而言,就可以直接使用。当然,我们不仅仅是希望编译生成动态库,还希望将qwtplot3d自带的Demo编译并运行通过。没问题,继续看下面的。

复制C:\qwtplot3d-0.2.7\qwtplot3d-build-desktop\lib文件夹到C:\qwtplot3d-0.2.7\qwtplot3d\下面

7、编译qwtplot3d自带的Demo程序。打开C:\qwtplot3d-0.2.7\qwtplot3d\examples文件夹。用QtCreator打开example.pro文件,点击编译运行,同样会出现No rule to target 'Makefile.Debug'.  Stop的错误。这里需要修改的pro文件是common.pro文件。

解决方法:

打开common.pro文件。删除语句:TEMPLATE = vcapp和 QMAKE_LFLAGS += /NODEFAULTLIB:msvcrt

8、修改完成后,再次编译example.pro文件会出现 :: error: ../../lib/qwtplot3d.lib: No such file or directory 。(注意:也可能是出现无法 make 的错误。其实也是这个原因导致的,同样按照下面的修改方法也可以解决)

修改方法:

打开common.pro文件。修改语句:LIBS+= ../../lib/qwtplot3d.lib  修改为:LIBS+= ../../lib/libqwtplot3d.a(这里换成那个dll的动态链接库文件也是可以的,因为.a文件是linux下的动态链接库文件,而.dll是window下面的动态链接库文件)

9、修改完成后,再次编译example.pro文件就不会出现错误。但是,编译完成运行的时候出现:

Starting C:\qwtplot3d-0.2.7\qwtplot3d\examples-build-desktop\bin\autoswitch.exe...

C:\qwtplot3d-0.2.7\qwtplot3d\examples-build-desktop\bin\autoswitch.exe exited with code -1073741515

出现这个问题的原因是动态库没有在example生成的可执行文件的目录下。

解决方法:

打开C:\qwtplot3d-0.2.7\qwtplot3d\lib文件夹,拷贝两个文件libqwtplot3d.a和qwtplot3d.dll。到文件夹:C:\qwtplot3d-0.2.7\qwtplot3d\examples-build-desktop\bin。(注意:这是我example生成的文件夹,要看一下你自己的生成的是不是这个位置)

10、正确运行。看一下运行结果吧。

实际的运行结果有多个,因为这个example里面有很多个例子,可以选择运行哪个例子:

运行结果大家可以看阿科的博客,也可以自己尝试,是出现不同的surface plot图像。

http://blog.sina.com.cn/s/blog_668aae780101kqcz.html

qwtplot3D安装——终结解决方案(YOUYOU版)的更多相关文章

  1. CentOS7.4安装部署openstack [Liberty版] (一)

    一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...

  2. 安装SQL Server2016正式版

    安装SQL Server2016正式版 今天终于有时间安装SQL Server2016正式版,下载那个安装包都用了一个星期 安装包可以从这里下载: http://www.itellyou.cn/ ht ...

  3. RPM方式安装MySQL5.6和windows下安装mysql解压版

    下载地址: http://cdn.MySQL.com/archives/mysql-5.6/MySQL-server-5.6.13-1.el6.x86_64.rpmhttp://cdn.mysql.c ...

  4. 如何安装Windows 7旗舰版

    如何安装Windows 7旗舰版.. ----------------- Windows 7旗舰版安装的初始画面 ------------------------- 选择好语言后,点击“下一步”按钮, ...

  5. 安装基于 Linux 发行版的重要事项(流程指引)

    安装基于 Linux 发行版的重要事项(Install important issues based on the Linux distribution. (Process guidance)) 1. ...

  6. Oracle系列-锁表与解锁解决方案(大招版)-解决问题才是王道

    [Oracle系列-锁表与解锁解决方案(大招版)] --1查看被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v$l ...

  7. SVN安装和使用(简单版)

    为什么使用SVN? 通常软件的开发需要团队协作开发,每个人负责一个方面,都做完后需要把每个人的代码整合在一起,而每个人的代码方面不同或版本不同就会拖延开发进度对开发项目造成麻烦,如果一个人需要另一个人 ...

  8. Linux,在不使用U盘的情况下使用wubi.exe程序在Win7上安装ubuntu-14.04.3版系统

    本文介绍如何在不使用U盘的情况下使用wubi.exe程序在Win7上安装ubuntu-14.04.3版系统. 花了一天的时间终于安装上了Ubuntu14.04,过程坎坷,是血泪史,开始报“cannot ...

  9. Atitit 视图参数解决方案 oracle版和mysql版本 attilax总结.docx

    Atitit 视图参数解决方案 oracle版和mysql版本 attilax总结.docx 1.1. Package机制1 1.2. 全局变量机制1 1.3. 临时表模式,oracle mysql都 ...

随机推荐

  1. BST的删除

    #include<iostream> #include<math.h> #include<stdio.h> #include<stdlib.h> #in ...

  2. WGS84、GCJ-02(火星坐标)、百度坐标,Web墨卡托坐标

    GCJ-02坐标系统(火星坐标)简介:http://blog.csdn.net/giswens/article/details/8775121(存档:http://mapbd.com/cms/2012 ...

  3. 移动端下网页border:1px显示

    解决这个问题之前首先要了解移动前端开发viewport的概念,自己写了一篇很粗糙viewport详解的文章对它有了一个很简单的理解.这里推荐一篇很详细的博文<<移动前端开发之viewpor ...

  4. GoF——组合模式

    组合模式:将对象组合成树形结构以表示“部分-真题”的结构层次.组合模式使得用户对单个对象和组合对象的使用具有一致性. 结构图: using System; using System.Collectio ...

  5. 异构数据源海量数据交换工具-Taobao DataX 下载和使用

    DataX介绍 DataX是一个在异构的数据库/文件系统之间高速交换数据的工具,实现了在任意的数据处理系统(RDBMS/Hdfs/Local filesystem)之间的数据交换. 目前成熟的数据导入 ...

  6. 转:onkeypress、onkeydown、onkeyup 区别

    在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress.onkeydown.onkeyup三个事件进行出来.该三个事件的执行顺序如下:onkeydown -> onk ...

  7. 紫薇~还记得大明湖畔的HTML5智力拼图吗?

    曲线谜团是非常有趣的HTML5智力游戏,据说超过多少分会有惊喜,游戏简单易操作,偶尔抛弃那种杀死脑细胞的大型游戏,玩玩这种简单经典的益智小游戏,放松放松,也是不错的选择嘛-将游戏 通过 统一开发环境( ...

  8. VC中实现带有背景位图的树型控件

    当前许多应用程序都在使用树型控件时为其添加了背景位图,增强的控件的魅力,然而对于Visual C++编程爱好者来说,使用Visual C++MFC提供的树型控件(CTreeCtrl)本身就是一个难点, ...

  9. [LeetCode][Python]ZigZag Conversion

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com'https://oj.leetcode.com/problems/zigzag- ...

  10. c# 搭建服务端 byte[] 处理(3)

    数据的传输中,为防止数据传输过程中被获取解析 造成数据的不安全,一般都会采取各类的方式对数据进行加密.压缩等操作,在客户端或服务端以相同的算法解析即可获得数据,一定程度上减小了数据在中间过程被获取数据 ...