当前位置:网站首页>鲲鹏编译调试插件实战
鲲鹏编译调试插件实战
2022-08-02 00:06:00 【InfoQ】
鲲鹏编译调试插件实战
本次内容主要介绍了鲲鹏编译调试插件并进行实战演练操作。帮助大家更快上手鲲鹏编译插件。
课程链接:https://www.hikunpeng.com/zh/developer/live/detail/1538767731381215234

1. 背景介绍
随着软件的发展与变化,同一源码需要在不同平台上进行编译、部署与运行,但由于本地环境与远程环境不一致,导致源码在本地编译后无法在远程运行。开发者更习惯于依赖本地IDE进行开发、调试,基于此开发者经常需要手动上传代码至远端执行编译调试,远程不能直接定位问题,开发效率慢。为了解决开发者由于开发、编译、调试环境分离导致开发效率低下等一系列的痛点问题,鲲鹏编译调试插件(Kunpeng Compiler Plugin)应运而生,作为一款集成于IDE中的插件,可以一键式执行远程编译与调试,编译及运行结果都会呈现在本地IDE中,极大的提高了开发者的效率。
1.1 工具支持的功能特性

2. 项目实战
2.2 gtest-cmake-example 简要介绍
gtest-cmake-example是一个使用谷歌测试的cmake设置示例。其作用是帮助开发进行C++和谷歌测试。
本实践利用“gtest-cmake-example”项目,帮助用户熟悉编译调试插件的使用。该项目git地址为: https://github.com/dmonopoly/gtest-cmake-example.git
语言版本:c++
gtest版本:1.6.0
硬件要求
软件要求

操作系统要求

前提条件
已安装vscode,已有正确编译环境的Linux服务器或通过远程实验室申请服务器。
操作步骤
步骤4 配置远程调试服务器---输入服务器信息并配置

步骤5创建编译任务----输入编译命令: mkdir build;cd build;cmake .;make并创建

步骤6启动编译任务---启动远程编译

启动编译任务---查看远程编译结果:编译状态及输出信息

步骤7添加测试用例---打开测试用例页面

执行测试用例

查看调试信息

3. 实战gtest项目
在鲲鹏社区申请远程实验室,
https://www.hikunpeng.com/zh/developer/devkit
点击云测服务

点击进入远程实验室

点击立即申请
通过邮箱申请免费鲲鹏虚拟化环境(Kunpeng 920 | 8vCPU | 16GB内存 | 200GB系统盘),环境中已经预装鲲鹏开发套件 Kunpeng DevKit。

操作系统选择OpenEuler

申请成功


3.1安装finalshell
finalshell为远程ssh登录工具
finalshell下载链接
http://www.hostbuf.com/t/988.html
3.2 安装uin-vpn
下载链接:http://www.leagsoft.com/doc/article/103107.html
点击新建链接

输入邮箱中获取的信息后进行登录

再登录finalshell

3.3源码下载
1)进入“鲲鹏代码迁移工具”源码文件存放路径。
cd /opt/portadv/portadmin/sourcecode/

2)下载Megahit源码。
git clone https://github.com/voutcn/megahit.git

3)将代码进行合并。
cd megahit/ && git submodule update

4)创建构建文件夹并进入。
mkdir build && cd build

提示:这里需要手动安装cmake
5)生成Makefile文件。
cmake -DCMAKE_BUILD_TYPE=Release

6)修改megahit目录属组。
cd ../ && chown -R porting:porting *

3.4 代码迁移
登录迁移网址平台https://172.36.86.41:8084/


1)源码分析参数填充
2)启动一个源码迁移任务,任务执行成功,查看源码报告。

点击开始分析

左下角可以显示源码迁移分析进度

此处编译器版本只能选择GCC,无法选择图例中的昇腾编译器
报告生成后点击查看报告

3)点击报告源码迁移建议,查看需要迁移的文件。

4)根据系统提示的修改建议进行修改。

5)迁移后重新编译,查看编译结果。

6)运行程序,查看回显信息。

边栏推荐
猜你喜欢
随机推荐
els 长条变形
含外部储能的电力系统暂态稳定分布式控制
OpenCV DNN blogFromImage() detailed explanation
SphereEx Miao Liyao: Database Mesh R&D Practice under Cloud Native Architecture
What is the function of the JSP Taglib directive?
IP Core: FIFO
Study Notes: The Return of Machine Learning
ROS dynamic parameters
bgp aggregation reflector federation experiment
What is it like to trade for a living?
IP核:FIFO
JSP内置对象out对象的功能简介说明
PHP从txt文件中读取数据的方法
这 4 款电脑记事本软件,得试试
双队列实现栈?双栈实现队列?
uni-app项目总结
Arduino Basic Syntax
After an incomplete recovery, the control file has been created or restored, the database must be opened with RESETLOGS, interpreting RESETLOGS.
回顾历史5次经济衰退时期:这一次可能会有何不同?
JSP request对象功能详解说明