《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配置代码自动上传功能
返回到主函数这里对代码进行如下修改
编写测试用例
这里是我的程序地址
这里根据个人情况修改测试用例
编写完成后开始获取测试用例
最后一步进行断点设置,开始进行调试
到这里编译调试已经完成!