鲲鹏devkit编译调试工具——《sudoku》作业解析

news/2024/5/4 19:59:31/文章来源:https://blog.csdn.net/m0_63694520/article/details/128000600

《sudoku》作业解析

本次实验以sudoku项目为例介绍鲲鹏编译调试插件的基本使用方法
本次实验的步骤主要为

  • 获取源码
  • 安装鲲鹏编译调试插件
  • 服务器配置
  • 进行代码同步配置
  • 配置测试任务
  • 进行编译调试
    接下来我们先获取本次实验所需要的源码

获取源码

sudoku项目已经上传到github使用以下命令克隆到本地的
git clone https://github.com/mayerui/sudoku.git
在这里插入图片描述
克隆完成后文件的目录如下
使用vscode打开

安装鲲鹏编译调试插件

使用vscode打开sudoku项目后在插件商店搜寻鲲鹏编译调试插件下载并打开
进行编译调试插件的服务器配置
在这里插入图片描述
打开插件后按照提示配置服务器,本次的项目直接我们选择编译调试就好
在这里插入图片描述
开始进行服务器的配置
在这里插入图片描述
在配置服务器这里,根据要求填写自己的服务器的ip(是公网ip)
这里如果没有进行修改的话默认的ssh端口都是22
ssh用户名也是管理员权限root
工作空间这里需要在服务器上建立自己的工作空间,这里我在/home下建立了一个workspace工作目录,这个根据自己的习惯进行修改
在这里插入图片描述
方便后面的代码同步操作我们需要与服务器建立互信,上传私钥和公钥
本地生成的代码如下,进入cmd输入如下命令
ssh-keygen -b 3072 -t rsa -f D:\tmp
这个命令会在d盘上生成我们需要的公钥和私钥
在这里插入图片描述
tmp为私钥
tmp.pub为公钥
开始配置
在这里插入图片描述
配置完成后可以选择目标服务器进行登录
在这里插入图片描述
选择将sudoku项目同步到我们的远端服务器的工作空间中
在这里插入图片描述
同步完成后在远端服务器的工作空间中可以弹道sudo项目的代码
到这里鲲鹏编译调试的前期的准备工作已经完成
接下来,开始进行sudoku项目的编译调试

使用鲲鹏编译调试插件

首先对sudoku项目进行简单的了解
打开README.md
在这里插入图片描述
通过README.md快速了解下sudoku项目
进入到main函数当中

#if _TEST_test_case1();getchar();
#else

这样的一段代码可以开始给我们获取一些测试用例,默认的_TEST_为0

void CScene::generate()
{// XXX: pseudo randomstatic char map_pattern[10][10] = {"ighcabfde","cabfdeigh","fdeighcab","ghiabcdef","abcdefghi","defghiabc","higbcaefd","bcaefdhig","efdhigbca"};std::vector<char> v = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'};// 产生字母到数字的随机映射std::unordered_map<char, int> hash_map;for (int i = 1; i <= 9; ++i){int r = random(0, v.size() - 1);hash_map[v[r]] = i;v.erase(v.begin() + r);}// 填入场景for (int row = 0; row < 9; ++row){for (int col = 0; col < 9; ++col){point_t point = {row, col};char key = map_pattern[row][col];setValue(point, hash_map[key]);}}assert(isComplete());return;
}

在scene.cpp文件中的这个方法就是棋盘的初始化的方法
大概了解了整个项目后我们按照REANDE.md开始进行项目的编译
回到插件,开始创建编译命令
在这里插入图片描述
编译命令为
sh build.sh
在这里插入图片描述
开始创建编译命令
在这里插入图片描述
刚开始,这里我们选择同步并编译
在这里插入图片描述
检查服务器是否已经存在cmake
使用以下命令检查
cmake --version
在这里插入图片描述
可以发现这里服务器并没有按安装cmake需要进行按照,使用以下命令进行安装
yum install cmake
在这里插入图片描述
再次查看版本号

在这里插入图片描述
这里是出现了问题的,因为这里的cmake版本只有2.8我们需要的是3.12版本以上才可以
所以需要升级cmake版本
1、依赖环境安装
yum -y install libyaml libyaml-devel python-setuptools libcurl-devel python-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel libpcap-dev*

2、下载cmake
wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz

3、解压、编译安装
tar xzvf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./bootstrap
make -j 8
make install

4、验证是否安装完成
cmake --version
安装完成cmake后开始执行远程编译任务
在这里插入图片描述
编译成功,进入到bin目录下启动sudo
./sudo
在这里插入图片描述
编译启动正常

调试功能

返回vscode配置代码自动上传功能
在这里插入图片描述
返回到主函数这里对代码进行如下修改
在这里插入图片描述
编写测试用例

在这里插入图片描述
这里是我的程序地址
这里根据个人情况修改测试用例
编写完成后开始获取测试用例
在这里插入图片描述
在这里插入图片描述
最后一步进行断点设置,开始进行调试
在这里插入图片描述
到这里编译调试已经完成!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_224783.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CVPR‘15 Joint action recognition and pose estimation from video

任务&#xff1a;action recognition and pose estimation 思路&#xff1a;对动作和姿态进行统一建模&#xff0c;将动作分成姿态&#xff0c;再将姿态分成part&#xff0c;学习三种level特征&#xff0c;通过动态规划有效的推断动作标签和姿态。 方法&#xff1a;统一建模…

鼠标经过图片在边框内放大动效

鼠标没有经过&#xff1a; 鼠标经过的时候&#xff0c;看图&#xff0c;应该可以看出变化吧&#xff01;图有放大的效果。 样式&#xff1a;图片由一个盒子包着&#xff0c;盒子加上overflow:hidden的样式&#xff0c;即可以保证图片在边框内放大。 然后给图片加上动画效果就可…

Vue常用知识点汇总

1. Vue常见的指令有哪些&#xff0c;有什么用 &#xff08;1&#xff09;v-text&#xff1a; 会替换掉元素里的内容&#xff1b; &#xff08;2&#xff09;v-html&#xff1a; 可以渲染html界面&#xff1b; &#xff08;3&#xff09;v-clock&#xff1a; 防止界面闪烁&…

JavaScript开发工具WebStorm入门教程:开始运行WebStorm(一)

WebStorm是一个JavaScript开发工具&#xff0c;用于JavaScript及其相关技术编码&#xff0c;包括TypeScript、React、Vue、Angular、Node.js、HTML和样式表。就像IntelliJ IDEA和其他JetBrains ide一样&#xff0c;WebStorm让您的开发体验更愉快&#xff0c;自动化日常工作&…

7种主流数据分析软件比较及经典教材推荐

前言 STATA 软件优点&#xff1a;Stata以其简单易懂和功能强大受到初学者和高级用户的普遍欢迎。使用时可以每次只输入一个命令&#xff0c;也可以通过一个Stata程序一次输入多个命令。这样的话即使发生错误&#xff0c;也较容易找出并加以修改。尽管Stata的数据管理能力没有…

用DIV+CSS技术设计我的家乡网站(web前端网页制作课作业)南宁绿城之都

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

Xshell连接不上创建的虚拟机

1.输入ip a查看是否有对应的网卡ip 更改前&#xff1a; 更改后&#xff1a; 具体看下面博客的步骤&#xff0c;这里不详细赘述 (137条消息) Linux虚拟机联网步骤&#xff08;修改网络配置信息&#xff09;_袁梦码的博客-CSDN博客_怎么让linux虚拟机联网 2.关闭防火墙 永久关…

C语言实现冒泡排序(图解)

目录 一、冒泡排序是什么&#xff1f; 二、图解冒泡排序过程 三、代码实现 3.1易错点&#xff08;切记切记&#xff09; 四、优化 4.1优化代码 一、冒泡排序是什么&#xff1f; int arr[]{9,8,7,6,5,4,3,2,1,0} &#xff0c;像这样的数组&#xff0c;升序排序。 冒泡排序…

linux 清理垃圾文件

linux的文件系统比windows的要优秀&#xff0c;不会产生碎片&#xff0c;对于长时间运行的服务器来说尤为重要&#xff0c;而且linux系统本身也不会像windows一样产生大量的垃圾文件。不知道这个说法有没有可信度!至少我们可以确定的是linux系统的文件系统是比较优秀的! linux…

使用html+css+js实现一个静态页面(含源码)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

MASA Framework 事件总线 - 进程内事件总线

概述 事件总线是一种事件发布/订阅结构&#xff0c;通过发布订阅模式可以解耦不同架构层级&#xff0c;同样它也可以来解决业务之间的耦合&#xff0c;它有以下优点 松耦合横切关注点可测试性事件驱动 发布订阅模式 通过下图我们可以快速了解发布订阅模式的本质 订阅者将自…

Python学习 - 异常处理

Python学习 - 语法入门&#xff1a;https://blog.csdn.net/wanzijy/article/details/125287855 Python学习 - 数据类型&#xff1a;https://blog.csdn.net/wanzijy/article/details/125341568 Python学习 - 流程控制&#xff1a;https://blog.csdn.net/wanzijy/article/details…

什么是软件测试?

什么是软件测试&#xff1f; 软件测试的定义&#xff1a;在一定条件下对软件进行操作&#xff0c;发现软件的问题&#xff0c;提高软件的质量。 软件测试在开发中的有着重要地位。软件测试在各阶段的完成相应的任务&#xff0c;需求测试&#xff0c;架构测试&#xff0c;详细测…

关于windows的文件监控管理系统(Java)

目 录 摘 要 I Abstract II 1.绪论 1 1.1课题背景 1 1.2系统开发的目的和意义 2 1.3国内外概况 3 1.4研究主要内容 3 2.windows文件监控管理系统相关技术介绍 4 2.1 API 4 2.2 API HOOK 5 2.3 Java 5 2.4 DLL 6 2.4 Windows系统的Socket编程 6 2.4.1使用WinSock API 6 2.4.2 使…

MCE | 为什么肥胖经常被“针对”?

近年来&#xff0c;肥胖问题受到越来越多的关注&#xff0c;肥胖不只影响美丽身材&#xff0c;过度肥胖还可能导致肥胖症&#xff0c;这是很多疾病的高风险因素。所以肥胖是一种病&#xff1f;肥胖的标准是什么&#xff1f;别急&#xff0c;等小编慢慢道来。 认识肥胖症 (Obesi…

运动用品品牌排行榜,2022年值得买的运动用品推荐

如今&#xff0c;人们的生活节奏越来越快&#xff0c;工作和生活压力大。因此&#xff0c;人们越来越重视体育运动&#xff0c;通过体育运动达到放松和锻炼身体的目的&#xff0c;运动装备也就跟着火热起来。无论是进行室内或户外活动&#xff0c;选一套合适的运动装备是很有必…

顶象首届业务安全保卫战完美落幕,快来看看TOP10里有没有你!

今年双十一&#xff0c;顶象特别发起了首届业务安全保卫战&#xff0c;旨在召集白帽子们为业务安全贡献自己的一份力量。历经一个月&#xff0c;顶象首届业务安全保卫战已于20日正式落下帷幕。 截止11月20 日&#xff0c;顶象业务安全保卫战通过审核的业务安全情报&业务安…

Jetpack Compose中的state核心思想

Compose 中的状态 应用的“状态”是指可以随时间变化的任何值。这是一个非常宽泛的定义&#xff0c;从 Room 数据库到类的变量&#xff0c;全部涵盖在内。 所有 Android 应用都会向用户显示状态。下面是 Android 应用中的一些状态示例&#xff1a; 聊天应用中最新收到的消息…

MES必懂知识,市场需求下的生产管理系统

任何事物的产生和发展都与市场的需求是分不开的&#xff0c;只有当市场需求新生的事物的时候&#xff0c;他才会兴起&#xff0c;有的事物早已经产生&#xff0c;在当时的环境下并未兴起&#xff0c;却在后来才兴盛&#xff0c;这是市场的需求的影响。 MES便是在市场需求下诞生…

105-120-Hadoop-MapReduce-outputformat:

105-Hadoop-MapReduce-outputformat&#xff1a; OutputFormat 数据输出&#xff0c;OutputFormat接口实现类 OutputFormat是MapReduce输出的基类&#xff0c;所有实现MapReduce输出都实现了 OutputFormat 接口。下面我们介绍几种常见的OutputFormat实现类。 1&#xff0e;O…