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

news2024/12/24 20:52:47

《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 random
    static 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.coloradmin.cn/o/30607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

stata外部命令大全(包含面板门槛、系统GMM、空间计量、Pvar、中介效应等)

1、数据来源&#xff1a;自主整理 2、时间跨度&#xff1a;无 3、区域范围&#xff1a;无 4、指标说明&#xff1a; 该些外部命令包含面板门槛、系统GMM、空间计量、pvar、中介效应等涵盖全部 以下是部分命令截图&#xff1a; 空间计量&#xff1a; 系统GMM&#xff08;动…

Allure使用手册

一. 简介 Allure是一款支持多语言的测试结果可视化软件&#xff0c;支持Java、Python&#xff0c;搭配Junit、pytest等测试框架食用更香。本文主要讲解搭配Junit4。 二. 下载、安装部署 2.1 下载 百度搜索Allure2&#xff01;&#xff01;&#xff01; 敲重点&#xff1a;…

基于Qlearning强化学习的倒立摆控制系统matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 强化学习通常包括两个实体agent和environment。两个实体的交互如下&#xff0c;在environment的statestst下&#xff0c;agent采取actionatat进而得到rewardrtrt 并进入statest1st1。Q-l…

【头歌实验】五、Python循环结构

文章目录>>>第1关&#xff1a;达依尔的麦子数任务描述案例分析相关知识for循环测试说明参考答案>>>第2关&#xff1a;四级单词查询任务描述案例分析相关知识如何处理文件文件打开文件循环文件关闭遍历文件测试说明第3关&#xff1a;出租车车费计算任务描述案…

Monaco Editor教程(十八):使用api来完成某些键盘操作,格式化,查找,显示右侧菜单等。

背景 在一般的Web IDE中&#xff0c;我们需要将经常用到的一些操作放到顶部操作栏里&#xff0c;类似语雀的文档编辑。 代码编辑器&#xff0c;一般也会放一些查找&#xff0c;格式化&#xff0c;撤销&#xff0c;恢复。有些人喜欢用快捷键来进行这些操作&#xff0c;但由于mo…

Packet Tracer - 配置 OSPF 高级功能

地址分配表 设备 接口 IPv4 地址 子网掩码 默认网关 R1 G0/0 172.16.1.1 255.255.255.0 不适用 S0/0/0 172.16.3.1 255.255.255.252 不适用 S0/0/1 192.168.10.5 255.255.255.252 不适用 R2 G0/0 172.16.2.1 255.255.255.0 不适用 S0/0/0 172.16.3.2 …

论文笔记: 全波形反演的无监督学习: 将 CNN 与偏微分方程做成一个环

摘要: 分享对论文的理解, 原文见 Peng Jin, Xitong Zhang, Yinpeng Chen, Sharon Xiaolei Huang, Zicheng Liu, Youzuo Lin, Unsupervised learning of full-waveform inversion: connecting CNN and partial differential equation in a loop. 论文发表于计算机方面的顶会 ICL…

(续)SSM整合之SSM整合笔记(Spring整合MyBatis)(P179-188)

一 准备工作 1 新建模块ssm com.atguigu.ssm 2 导入依赖 <packaging>war</packaging><properties><spring.version>5.3.1</spring.version> </properties><dependencies><dependency><groupId>org.springframewo…

Linux:进程(二)

文章目录前言一、环境变量1.概念2.常见环境变量3.一个疑问4.通过系统调用获取或设置环境变量二、地址空间1.引入2.分页&进程地址空间1.页表2.写时拷贝3.为什么要有地址空间总结前言 今天我们继续学习进程相关知识。 一、环境变量 1.概念 环境变量(environment variables)…

从理解路由到实现一套Router(路由)

平时在Vue项目中经常用到路由&#xff0c;但是也仅仅处于会用的层面&#xff0c;很多基础知识并不是真正的理解。于是就趁着十一”小长假“查阅了很多资料&#xff0c;总结下路由相关的知识&#xff0c;查缺不漏&#xff0c;加深自己对路由的理解。 路由 在 Web 开发过程中&a…

Redis中最简单的存储类型:String

String类型&#xff0c;也就是字符串类型&#xff0c;是Redis中最简单的存储类型。 其value是字符串&#xff0c;不过根据字符串的格式不同&#xff0c;又可以分为3类&#xff1a; string&#xff1a;普通字符串 int&#xff1a;整数类型&#xff0c;可以做自增、自减操作 f…

CentOS虚拟机装完了,不能粘贴window命令行?不能上网?

文章目录前言关于CentOS安装版本如何实现粘贴命令行CentOS命令行模式下如何联网&#xff1f;结尾前言 最近想系统学习Linux环境下系统运维&#xff0c;所以安装了CentOS 7虚拟机&#xff0c;但是个人笔记本上和工作电脑上无意中下载了不同镜像进行安装&#xff0c;有一台机器无…

Nerf三维重建Pytorch使用Pycharm运行0基础教程

Nerf三维重建Pytorch使用Pycharm运行0基础教程 你好&#xff01; 这里是“出门吃三碗饭”本人&#xff0c;本文章接下来将介绍如何从0运行2020会议Nerf的Pytorch版本&#xff0c;让你自己动手渲染第一个三维模型。视频解说可以关注B站&#xff0c;搜索 出门吃三碗饭 &#xff…

Improving Inductive Link Prediction Using Hyper-Relational Facts

摘要 多年来,知识图(KGs)上的链接预测一直是一个纯粹的转换任务,不允许对看不见的实体进行推理。最近,越来越多的努力被投入到探索半和全归纳场景,使推理能够对不可见的和新兴的实体。然而,所有这些方法都只考虑基于三元组的kg,而它们更丰富的对应,超关系KG(如Wikidata…

OWASP ZAP mac chrome代理配置取消URL强制Https【已解决】

1.OWASP ZAP OWASP Zed攻击代理&#xff08;ZAP&#xff09;是世界上最受欢迎的免费安全审计工具之一&#xff0c;由数百名国际志愿者积极维护。它可以帮助你在开发和测试应用程序时自动查找Web应用程序中的安全漏洞。 也可以说ZAP是一个中间人代理。它能够获取你对Web应用程…

2022亚太赛题浅评

2022年亚太今日已经正式开赛&#xff0c;为了帮助大家更好的选题建模&#xff0c;这里首先对ABC三道题目进行浅要评析&#xff0c;以方便大家更好的择题。同时相关资料也会后续进行补充。预计明日公布各题统计选题人数以及较为完善的资料。今天作为第一天重要的是择好题&#x…

XCTF1-web easyupload

easyupload 题目描述 一名合格的黑客眼中&#xff0c;所有的上传点都是开发者留下的后门 进入场景 是个文件上传的页面&#xff0c;测试上传的文件类型&#xff0c;发现是图片上传点 上传正常图片&#xff0c;会回显文件上传的路径 尝试推测文件上传检测点 测试后缀名php、…

Flutter高仿微信-第30篇-单聊-文本

Flutter高仿微信系列共59篇&#xff0c;从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图&#xff1a; 详情请参考Flutter高仿微信-第29篇-单聊 &#xff0c; 这里只是提取文本实现的部…

Linux系统中使用汇编初始化外设方法

大家好&#xff0c;我是ST。 今天主要和大家聊一聊&#xff0c;如何使用汇编语言来实现芯片外设的初始化功能。 ​ 目录 第一步&#xff1a;硬件原理分析 第二&#xff1a;实验程序编写方法 第三&#xff1a;汇编代码具体实现 第四&#xff1a;编译与下载 第五&#xff…

临床医生公派赴美国密歇根大学医院访学交流

在保证出国时间的前提下&#xff0c;专业匹配程度越高越好&#xff0c;这是P医生提出的要求。我们的申请团队全力以赴&#xff0c;提前3个月完成了任务&#xff0c;令客户非常满意。 P医生背景&#xff1a; 申请类型&#xff1a;公派访问学者 工作背景&#xff1a;三甲医院 …