OpenCPN介绍及编译

OpenCPN是一个航海应用软件系统,采用wxWidgets界面框架,支持OpenGL,可以跨平台运行在Windows , Linux , Mac电脑上。

OpenCPN是一个自由软件工程,遵从GPLv2协议开放源代码,支持S57矢量格式BSBv3栅格格式海图;CM93矢量格式支持,支持S52显示标准,支持自动海图跟踪,支持航线规划及跟踪,支持NMEA0183 GPS接口, GPSD接口,支持AIS接口,实现船舶跟踪和避碰报警,最重要的是支持插件机制,可以方便扩展功能。

目前最新稳定版本是v3.0.2版本,研究了一段时间,在windows下编译方法如下:

(1)      准备VS2010 ,装sp1

(2)      通过GIT获取源码,git clone git://github.com/OpenCPN/OpenCPN.git

(3)      安装CMake,我这里安装的CMake2.8版本       CMake使用教程参见 http://blog.csdn.net/xuguangsoft/article/details/8162757

(4)      安装Gettext,编译需要,下载http://www.poedit.net/,安装POEDIT;

(5)      下载wxMSW-2.8.12,原因在于该软件采用该界面库,下载地址为:http://www.wxwidgets.org/downloads/#latest_stable

安装或者解压后,修改文件 include\wx\msw\setup.h

Set:

#definewxUSE_GRAPHICS_CONTEXT 1

#definewxUSE_GLCANVAS       1

(6)      编译wxMSW-2.8.12

cmd进入编译目录cd  ${WXDIR}\build\msw

执行:nmake -f makefile.vc BUILD=debug MONOLITHIC=0 SHARED=1 UNICODE=1USE_GDIPLUS=1 USE_OPENGL=1

等待大概几分钟,编译完成,无错误。

(7)      编译OpenCPN

启动CMake (cmake-gui)

配置如下:

依次点击Configure ,Generate;

出现Cofiguring  done

Generating  done

说明成功完成,否则失败,常见问题是需要设置GetText相关参数;安装POEDIT,在程序目录下即可找到相关exe文件。

执行完成后,在OpenCPN\build下可以找到OpenCPN.sln,通过VS2010打开

设置相关工程编译为UNICODE。如下所示:

设置相关工程预处理增加WXUSINGDLL,如下所示:

修改引入库名称,修改为Unicode版本的,如下:

然后编译,即可成功!调试方式运行,效果如下:

以上为OpenCPN的编译步骤。

欢迎交流,遇到问题可以联系我L_787#sina.com

OpenCPN介绍及编译的更多相关文章

  1. zlib开发笔记(四):zlib库介绍、编译windows vs2015x64版本和工程模板

    前言   Qt使用一些压缩解压功能,介绍过libzip库编译,本篇说明zlib库.需要用到zlib的msvc2015x64版本,编译一下.   版本编译引导 zlib在windows上的mingw32 ...

  2. CentOS8安装Geant4笔记(一):Geant4介绍、编译和安装

    前言   在服务器CentOS8.2上安装geant4软件.   GEANT4 介绍   Geant4 是一个用于模拟粒子穿过物质的工具包.其应用领域包括高能.核物理和加速器物理,以及医学和空间科学研 ...

  3. CentOS8安装Geant4笔记(三):Geant4介绍、编译、安装支持Qt5界面并运行exampleB1例程显示Qt界面

    前言   上一篇,安装了Qt5环境.  本篇在服务器CentOs8.2上安装geant4软件,geant4使用Qt5来显示.   GEANT4 介绍   Geant4 是一个用于模拟粒子穿过物质的工具 ...

  4. Mqtt开发笔记:windows下C++ ActiveMQ客户端介绍、编译和使用

    前话   项目需求,需要使用到mqtt协议,之前编译QtMqtt库,不支持队列模式queue(点对点),只支持订阅/发布者模式.,所以使用C++ ActiveMQ实现.   MQTT协议 简介   M ...

  5. GEOS库的学习之一:介绍和编译

    对GEOS库的学习,源于一个项目:要在c++中判断二维平面中两个多边形的关系(无论凹凸).也就是判断两个多边形是否相交.相容等.听起来很简单,可实现起来却比较难,而项目又催得紧.于是我去搜索了一下,看 ...

  6. DPDK - gsg文档(介绍与编译)

    && Hugepage 提前分配hugepage内存,可以减少虚拟页地址转换到物理地址所需的时间. 相关命令: 在虚拟机上运行时,在没有NUMA的机器上,执行“echo 1024 &g ...

  7. Nginx的介绍以及编译安装详解

    Nginx的介绍以及编译安装详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx(全称”engine x“)诞生背景 apache主要优点是功能丰富且足够稳定,但是其 ...

  8. 01-nginx介绍及编译安装

    第一天的时候学过apache,nginx和apache一样都是一个WEB服务器.也就是说你的网站之所以可以在网上运行,总得有一台机器在为你提供服务,这台机器就是服务器.这台服务器通过什么软件在为你提供 ...

  9. RiscV汇编介绍(1)-编译过程

    从c/c++源文件,到可以执行文件,需要以下几个步骤: 预处理/编译 汇编 链接 下面我们以hello world程序为例,展示整个编译链接过程. 1. 编写hello.c代码 #include &l ...

随机推荐

  1. EasyNVR RTSP摄像机转HLS直播服务器中使用Onvif协议控制预置位

    EasyNVR支持预置位控制,包括转到指定预置位,设置指定预置位,删除指定预置位 预置位在安防领域有较为普遍的应用,可以进行很多既定位置的跳转,很方便 之前我们说过如何用Onvif协议进行设备的发现, ...

  2. kibana 查询语法

    根据某个字段查询 精确匹配: agent:"Mozilla/5.0" 如果不带双引号,只要包含指定值就可以搜索到 agent:Mozilla/5.0 如果是数值类型没有以上区别 数 ...

  3. android菜鸟学习笔记4----android项目结构

    src: 应用程序源代码存放目录 gen: 自动生成的目录,目录中存放所有由Android开发工具自动生成的文件. 目录中最重要的就是R.java文件. 这个文件由Android开发工具自动产生的.A ...

  4. CSS定位细节

    记住此三句话,很好的解决了关于浮动方面的问题: 1.浮动的元素对于没有设置浮动的元素来说是不存在的,浮动的元素将会覆盖没有浮动的元素 如图:先让d1浮动在left ,d2位置不浮动,d1覆盖了d2之上 ...

  5. 关于js全局变量数组push数据时dom中无数据的问题

    今天着实悲催,这问题整了好几个小时才解决.废话不多说,上问题. 一开始我定义了许多全局变量放在me下. var me = { dgOrderDetails: null, dgVisitNumbers: ...

  6. Versions 崩溃(Mac升级OS X Yonsemite 10.10)

    今天兴冲冲的升级到了OS X Yonsemite 10.10,结果发现SVN工具不能用了,于是找到一个暂时的解决的方法 1.打开目录~/.subversion/servers 2.在[global] ...

  7. spring-boot-starter-parent

    在官方文档的第三部分的13块讲述了引用的管理,官方推荐的是使用Maven和Gradle. 我一直在用的是maven,而且使用maven有些优势–spring-boot-starter-parent,这 ...

  8. ASP.Net .Net4.0 HTTP 错误 404.17 - Not Found

    源:ASP.Net .Net4.0 HTTP 错误 404.17 - Not Found 用了网上很多方法,最后是用这个网友的方法解决的,在此做个记录. VS2010编写WebService与在IIS ...

  9. java中判断字符串是否相等有两种方法:

    1.用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc",那么a==b将返回true.这是 ...

  10. python列表推导式的if-else

    a=[i for i in range(10) if i%2==0]print(a)a=[i if i%2==0 else 'qi' for i in range(10)]print(a) 结果:[0 ...