OpenCPN + Ubuntu 18.04 源码编译 + Codeblocks 调试 + wxFormBuilder 安装
OpenCPN + Ubuntu 18.04 源码编译
文章目录
- 一、参考资料
- 二、源码编译流程
- 三、利用 IDE 编译
- 四、利用 IDE 调试
- 四、测试界面开发工具
一、参考资料
- OpenCPN - linux 编译参考链接。
- wxFormBuilder-github 链接
二、源码编译流程
安装依赖,没有报错。
sudo apt-get install build-essential cmake gettext git-core gpsd gpsd-clients libgps-dev wx-common libwxgtk3.0-dev libglu1-mesa-dev libgtk2.0-dev wx3.0-headers libbz2-dev libtinyxml-dev libportaudio2 portaudio19-dev libcurl4-openssl-dev libexpat1-dev libcairo2-dev libarchive-dev liblzma-dev libexif-dev libelf-dev libsqlite3-dev
下载源码,使用码云加速。
cd xxx #进入你想存放 opencpn 的文件夹 git clone https://gitee.com/xxx/OpenCPN.git #注意更换自己的码云仓库名 xxx
下载速度极慢,使用码云克隆加速github。
- 注册码云,右上角新建仓库加号,选择从
Github/Gitlab
导入仓库菜单。 Git 仓库 URL
填入想clone
的Github
仓库,这里就是https://github.com/OpenCPN/OpenCPN,点击导入,后台处理一段时间后页面自动刷新会出现一模一样的仓库。- 利用码云进行
git clone
,因为这里我建立的是私有仓库,需要输入我的账户名和密码,输入后下载速度很快,直接达到带宽上限。
- 注册码云,右上角新建仓库加号,选择从
编译源码,
cmake ../
无问题,显示Configuring done
和Generating done
,继续make
。cd OpenCPN mkdir build && cd build``` cmake .. make
没有问题,编译成功,测试以下能否直接运行编译好的可执行文件,运行成功,没有问题。
./opencpn
三、利用 IDE 编译
官方推荐了四个 IDE ( Code::Blocks / KDevelop / Eclipse / CDT ),我们按照官方命令,生成项目文件,使用
codeblocks
首先测试:cmake -G "CodeBlocks - Unix Makefiles" ../
此时查看 build 文件夹下已经有了
OpenCPN.cbp
文件,这是 codeblocks 的工程文件。打开 codeblocks ,选择 File - open 找到刚才的 build 文件夹,选择 OpenCPN.cbp。
如果系统未安装该 IDE,可以直接从源安装:
sudo apt-get install codeblocks
此时右侧项目是 all 的状态,点击菜单栏上的 build 黄色小齿轮进行编译,这里提示没有错误,准备运行 opencpn。
Process terminated with status 0 (0 minute(s), 1 second(s)) 0 error(s), 0 warning(s) (0 minute(s), 1 second(s))
在右侧的下拉菜单中将 all 改选为 opencpn ,继续点击绿色三角 run 运行,可能弹出是否用 safe mode 运行,我选择了 yes 。
- 出现 opencpn 界面,编译运行无问题。
四、利用 IDE 调试
- 利用 IDE 进行 debug ,我们选择航线相关的源文件 Route.cpp ,随便将断点加在某行,我这里加在了 92 行构造函数的末尾,想看一看新建航线时断点能否进入。此时,加好断点,点击菜单栏中的红色三角 Debug 进行调试运行。
- 出现 opencpn 海图界面后,随便找个地方,右键选择 New Route… 新建航线, 成功进入断点。
实际上,官方在这里补充了一段说明。大致的意思是如果要在不安装的情况下直接在 IDE 中运行 opencpn ,需要进行一些拷贝操作,我将其简单分段如下,前三个操作只是复制,非常好理解,最后一个暂时没找到正确的位置设置,但是好像不影响调试。
In order to be able to run OpenCPN from inside the IDE without having it installed, you must:
- copy the following folders from the data subfolder of the source tree to your build folder: gshhs, s57data, tcdata.
- You also must create a subfolder uidata in the build folder and copy the following files from src/bitmaps into it: styles.xml, toolicons_journeyman_flat.png, toolicons_journeyman.png, toolicons_traditional.png, plus.svg.
- You should also copy authors.html and license.html from /data to your ‘build’ folder.
- Then to ensure that your ‘build’ folder is used as the ‘source’ for the run/debug session you need to ensure that OpenCPN is started with ‘-p’ as a parameter. This sets OpenCPN into ‘portable’ mode and therefore looks in the location the ‘opencpn’ executable is run from, i.e. your ‘build’ directory.
我把上面几句话写成了三句命令,首先 cd 进入你的 opencpn 源码路径下,执行如下命令即可。这些操作不做也可以进行编译调试,为了避免后面出现问题,最好还是按照官方指导来进行。
cp -r ./data/s57data ./data/gshhs ./data/tcdata ./build/ mkdir ./build/uidata && cp ./src/bitmaps/styles.xml ./src/bitmaps/toolicons_journeyman_flat.png ./src/bitmaps/toolicons_journeyman.png ./src/bitmaps/toolicons_traditional.png ./src/bitmaps/plus.svg ./build/uidata cp ./data/authors.html ./data/license.html ./build/
四、测试界面开发工具
官方推荐使用 wxFormBuilder-github 来开发 GUI 。
编译这个东西,按照它作者提供的编译指南,先安装依赖,然后克隆源码,最后编译运行。
sudo apt install libwxgtk3.0-gtk3-dev libwxgtk-media3.0-gtk3-dev meson git clone --recursive --depth=1 https://github.com/wxFormBuilder/wxFormBuilder cd wxFormBuilder meson _build --prefix $PWD/_install --buildtype=release ninja -C _build install ./_install/bin/wxformbuilder
运行到 ninja 编译,未通过,报错如下:
/usr/bin/ld: cannot find -lwx_gtk2u_media-3.0 /usr/bin/ld: cannot find -lwx_gtk2u_media-3.0 collect2: error: ld returned 1 exit status [61/67] Compiling C++ object 'additional@sha/plugins_additional_additional.cpp.o'. ninja: build stopped: subcommand failed.
缺少库,安装对应的库:
sudo apt-get install libwxgtk-media3.0-dev
最后执行编译好的可执行文件
./_install/bin/wxformbuilder
报错,提示,经过查找 issues 发现有人提到了这个问题 #524,解决方案如下,注意替换路径,我是安装在我自建的Software文件夹:
cd ~/Software/wxFormBuilder/_install/lib/x86_64-linux-gnu cp -r wxformbuilder ../ cd ~/Software/wxFormBuilder/_install/bin ./wxformbuilder
- 成功解决,完事了,wxFormBuilder 的具体使用方法请自行探索。
OpenCPN + Ubuntu 18.04 源码编译 + Codeblocks 调试 + wxFormBuilder 安装相关推荐
- opencv4.0在linux下编译,Ubuntu 18.04源码编译安装OpenCV 4.0步骤
Ubuntu 18.04下标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 108 ...
- Ubuntu 16.04源码编译安装Apache 2.4.25教程
这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...
- Anaconda Python3.6 OpenCV4.1.0 Ubuntu 16.04源码编译
Anaconda Python3.6 OpenCV4.1.0 Ubuntu 16.04源码编译 转载于:https://blog.csdn.net/phdsky/article/details/782 ...
- Ubuntu 16.04 源码编译安装 uhd gnuradio
Ubuntu 16.04 源码编译安装 uhd & gnuradio 环境介绍 UHD安装 1 安装依赖 2 编译 3 测试安装结果 4 配置 USB gnuradio安装 1 安装依赖 2 ...
- opencore0.6.3_Ubuntu 18.04 源码编译安装 PHP 7.3
记录在Ubuntu 18.04下源码编译安装 PHP 7.3的过程步骤. 0.下载PHP源代码 首先需要从PHP官网下载PHP7.3.1的源代码,保存为php-7.3.1.tar.xz. http:/ ...
- Ubuntu 20.04 源码编译Paddle2.2.2
做研发,总是要不停装新机器和新系统.今天尝试了一下编译Paddle2.2.2. 先说结果: (1)Ubuntu20.04 + Python3.8.10 + gcc-8 (2)cuda和cudnn的版本 ...
- Ubuntu 16.04 源码编译安装GPU tensorflow(二)
如前一篇在1.4.0版本的Tensorflow上安裝Tensorflow Object Detection API,在验证测试时出現serialized_options=None问题.需安装高版本Te ...
- 【已解决】ubuntu 16.04 源码编译opencv4.5.1 报错 “../../lib/libopencv_imgcodecs.so.4.5.0: undefined reference t”
源码编译opencv可参考教程:在ubuntu下安装opencv4.1.0详细步骤https://blog.csdn.net/weixin_44003563/article/details/90404 ...
- ubuntu 编译php5.6,Ubuntu 16.04 源码编译 PHP5.6
源码编译PHP5.6 //更新依赖 sudo apt-get update sudo apt-get install build-essential //安装依赖 sudo apt-get insta ...
最新文章
- java实验3 2020.4.6
- mac下安装前端模板引擎Jinja2
- 两点(51Nod-1416)
- 计算机专业术语的通俗解释,计算机专业术语解释
- Python3.2官方文件翻译-工具列表和十进制浮点计算
- 年轻人,AI不想给你加薪升职
- javplayer 使用教程_工程测绘CASS教程+视频讲解+插件大合集,小白3天学会绘图
- 数据库存储过程讲解与实例
- ADAMS2016启动证书错误解决
- KinectV2 qt opencv 实现平面测量
- 【随笔记】Deepin20 Linux 下安装编译NGINX
- Web前端——JavaScript 的基础总结
- kubernetes节点减容与扩容
- 文献【综述】Hallmarks of Cancer: The Next Generation 肿瘤的新十大特征
- 18.Oracle10g服务器管理恢复--RMAN备用数据库(练习31.32)
- vue 页面长时间静止不动,触发自动退出事件
- openai的gym baseline spiningup 深度强化学习环境安装 手撸gym环境demo
- 计算机企业人员的职称有哪些,企业IT人员评职称需要什么资质
- java继承执行子类输出顺序_JAVA继承顺序
- meshlab比较模型误差