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版本
(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