前言
前两天尝试用vs2017编译OpenCPN5.0.0,前后折腾了两三天总算编译成功了。官网给出的编译过程比较简单,我在实际编译过程中遇上了很多很多的问题,最多的就是缺少库,好在最后编译通过了。
后来浏览OpenCPN官网的时候发现发布了“5.8.0 Fast Track”,说的就是5.8.0以上的版本的快速编译,顿时感觉之前白折腾了。“5.8.0 Fast Track”提供了编译过程中用到的批处理文件,直接一键执行就行了,省去了手动安装库、设置环境变量的步骤,感觉不错于是在此记录一下。
构建的步骤
(一) 安装 Visual Studio Community 2022
官网链接:https://visualstudio.microsoft.com/vs/community/
注意:需要安装C++的相关组件,为了保证安装完整,我选的有点多。
(二)安装 Git
官网链接:https://git-scm.com/
默认选项不用更改,直接下一步下一步就行了。
(三)安装 Chocolatey
安装步骤
Chocolatey是用于Windows系统的一款软件管理工具。用于完成Windows中软件的搜索、安装、卸载等操作。既可以使用命令行完成也可以使用图形界面。
- 以管理员权限打开Windows PowerShell。
- 在打开的“Windows PowerShell”中输入如下命令:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
然后回车,就会自动下载并安装。
- 安装后在Windows PowerShell中输入:
choco
显示版本号,则安装成功。
- 安装图形化界面(非必须),代码如下:
choco install chocolateygui
安装之后输入 chocolateygui 打开图形界面(或在开始菜单中打开Chocolatey Gui 软件),选择左侧菜单中的chocolatey,安装你想安装的软件即可。
常用命令
// 更新chocolatey命令
choco upgrade chocolatey
// 安装软件包
choco install 软件包名称
// 安装git:
choco install git.install
// 安装Chrome:
choco install googlechrome
// 安装VS Code:
choco install vscode
// 更新软件包
choco upgrade 软件包名称
// 卸载软件包
choco uninstall 软件包名称
(四)安装用到的库
安装用到的库非常的多,每台电脑的环境有又不一样很难全部列出来,只能是在安装过程中出现错误后按照错误提示再去找。这里我只列举其中几个库的安装步骤。
- 安装7z,构建脚本用到了这个,以管理员身份运行CMD,输入
choco install 7z
。 - 安装
Gettext
并添加环境变量,下载链接。
(五)克隆项目并开始构建
- 克隆项目源码,访问不了github的话可以在git bash设置代理或者使用码云加速。
git config --global http.proxy 'http://172.16.18.104:65208'
// 设置代理
git config --global https.proxy 'https://172.16.18.104:65208'
git clone https://github.com/OpenCPN/OpenCPN.git
- 以管理员身份运行
x86 Native Tools Command Prompt for VS 2022
,cd到你克隆的OpenCPN根目录下,执行:
buildwin\win_deps.bat
然后等待脚本执行完毕。
- 运行ci目录下的appveyor.bat脚本。这将使用CMake配置项目并进行初始构建。cd到你克隆的OpenCPN根目录下,执行:
ci\appveyor.bat
- 执行完毕后就可以在OpenCPN\build文件夹下找到vs的项目文件
OpenCPN.sln
了,然后就可以直接用vs打开来项目重新构建了,此外也可以使用命令直接构建,两种方法选一种操作就可以。(推荐使用第2种,图形界面更加直观)
(1)使用命令行构建,在x86 Native Tools Command Prompt for VS 2022
中执行cmake --build . --target opencpn --config Release
,等待执行完毕即可。
(2)使用vs构建,打开OpenCPN.sln
,把opencpn设为启动项目开始构建就行了。 - 编译过程中肯定会有报错,根据错误信息解决一下,最后完美运行,断点可设。
(六)小结
- 官网给出的5.8以上版本的编译步骤比5.0简单太多了,但也不会一下就能编译成功,根据错误信息一个一个解决就行了。
- 我在编译过程中也遇到很多问题,好在最后通过百度和ChatGpt都解决了。
- 最后把我配置好的虚拟机放在云盘上,下载链接见附录。
- OpenCPN v5.0.0使用的是wxWidgets v3.1.2,而在5.8.0以上使用的是wxWidgets 3.2。
(七)附录
- OpenCpn 5.8.0 Fast Track
- Translating OpenCPN
- 配置好的虚拟机