AG35学习笔记(二):安装编译SDK、CMakeLists编译app、Scons编译server

2023-09-21 19:30:00

一、概述

二、安装SDK

2.1 网盘SDK - 权限不够

从移远给的网盘里下载了AG35的SDK。根据开发手册,使用source ql-ol-crosstool/ql-ol-crosstool-env-init来安装SDK,结果提示错误:
在这里插入图片描述
使用sudo,又提示找不到命令:
在这里插入图片描述
以root用户登录,执行完再退出
在这里插入图片描述
参考链接:sudo:source:找不到命令

2.2 bj41 - 需要交叉source

从gitlab上获取了项目的SDK,source失败:
在这里插入图片描述
第二次source成功,是因为我在SDK内source了一下:在这里插入图片描述
有时候我在SDK内source失败,在app内source一下,就可以了。为什么交叉source一下,就正常了,原因暂不知道。

2.3 mullen - relocate_sdk.py路径有误

其他人上传的SDK,我从gitlab上拉取后,安装失败:
在这里插入图片描述
经过查找,是因为SDK内ql-ol-crosstool目录下的relocate_sdk.py内容有误:
在这里插入图片描述
手动修改为自己的路径,再次source就是ok的了。
但是我自己在本地测试,修改这个路径,比如去掉guanyuan中间的u:
在这里插入图片描述
结果source也是ok的。source完,查看被修改为正确的包含guanyuan的路径。
为什么gitlab拉取的sdk,要自己修改路径,这个原因暂不知道。

三、编译SDK

3.1 /bin/sh: 1: gcc: not found

在这里插入图片描述
gcc -v测试发现没有安装,使用 sudo apt install gcc 进行安装即可。

3.2 curses.h: No such file or directory

在这里插入图片描述
使用sudo apt-get install libncurses5-dev进行安装即可。
更多参考:ncurses库的介绍与安装

四、CMakeLists - 编译app

关于CMakeLists的使用,可以先通过这两个链接,有个基本了解:

  1. CMake 简易入门教程
    熟悉Cmake的语法,编译单个main.c打印 hello word
    将 hello.c 编译为动态库和静态库,在main.c中调用库打印
    推荐了文档和视频两个资料
  2. CMakeLists.txt的超傻瓜手把手教程

4.1 cmake - 项目构建

首先切换到 build 文件夹,命令:cd build​
执行构建命令:cmake …​

cd build
cmake ..

在这里插入图片描述

4.2 make - 项目编译

执行编译命令:cmake --build .​
在这里插入图片描述

4.3 遇到的问题

4.3.1 BJ41 - 创建软链接

在这里插入图片描述

4.3.2 CMake was unable to find a build program

在这里插入图片描述
出现这个错误的原因是,ubuntu没有安装make(参考)。安装后即可正常

3.3.3 string.h: No such file or directory

在这里插入图片描述

五、Scons - 编译Server

未详细阅读,不区分顺序

添加链接描述
添加链接描述
添加链接描述

5.1 bj41

在这里插入图片描述
多出一个out文件夹

更多推荐

Qt5开发及实例V2.0-第十二章-Qt多线程

Qt5开发及实例V2.0-第十二章-Qt多线程第12章Qt5多线程12.1多线程及简单实例12.2多线程控制12.2.1互斥量12.2.2信号量12.2.3线程等待与唤醒12.3多线程应用12.3.1【实例】:服务器编程12.3.2【实例】:客户端编程本章相关例程源码下载1.Qt5开发及实例_CH1201.rar下载2

基于SpringBoot的校园周边美食探索及分享平台

目录前言一、技术栈二、系统功能介绍前台首页功能模块用户功能模块管理员功能模块三、核心代码1、登录模块2、文件上传模块3、代码封装前言美食一直是与人们日常生活息息相关的产业。传统的电话订餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起,互联网日益成为提供信息的最佳俱渠道和逐步走向传统的流通领域,传统的美食业进

【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)

目录1Pandas可视化功能2Pandas绘图实例2.1绘制线图2.2绘制柱状图2.3绘制随机散点图2.4绘制饼图2.5绘制箱线图A2.6绘制箱线图B2.7绘制散点图矩阵2.8绘制面积图2.9绘制热力图2.10绘制核密度估计图1Pandas可视化功能pandas是一个强大的数据分析库,提供了一些可视化工具来帮助用户更好

时间任务管理软件OmniFocus 3 mac中文版软件特色

OmniFocusStandardmac是一款高效的任务管理软件,具有任务管理功能、自定义功能、简洁直观的界面以及强大的提醒和通知功能。OmniFocusStandardmac软件特色​任务管理功能:OmniFocusStandard支持多种视图以适应不同的需求和偏好,比如项目视图、上下文视图和搜索视图。这些视图可以方

DOS、CMD、PowerShell、Shell 与 Windows (类Unix)Terminal 的区别

在计算机历史的演进中,命令行界面(CLI)始终是一个核心组件,它为用户提供了与计算机系统直接交互的能力。从早期的文本界面到现代的终端,命令行工具已经经历了长足的发展。本文将深入探讨DOS、CMD、PowerShell、Shell和WindowsTerminal这五种工具(系统)的特点、历史和应用。文章目录一、概念1.1

Oracle 常用命令大全

数据库----数据库启动&关闭启动数据库SQL>startupnomount;SQL>alterdatabasemount;SQL>alterdatabaseopen;关闭数据库SQL>shutdownimmediate;更多内容请参考:Oracle数据库启动和关闭----连接数据库登陆普通用户SQL>sqlplus用

分享从零开始学习网络设备配置--任务3.5 使用静态路由实现网络连通

任务描述某公司规模较小,该公司的网络管理员经过考虑,决定在公司的路由器、交换机与运营商路由器之间使用静态路由,实现网络的互连。静态路由一般适用于比较简单的网络环境。在这样的环境中,网络管理员应非常清楚地了解网络的拓扑结构,以便于设置正确的路由信息。由于该网络规模较小且不经常变动,所以使用静态路由比较合适。任务要求(1)

网络安全(黑客)自学

前言:想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有

【Oracle】Oracle系列之五--Oracle表空间

文章目录往期回顾前言1.基本概念2.表空间的创建与管理(1)表空间的创建(2)修改表空间数据文件大小(3)表空间不足时,增加数据文件(可增加1个或多个)(4)重命名表空间数据文件(5)删除表空间往期回顾【Oracle】Oracle系列–Oracle数据类型【Oracle】Oracle系列之二–Oracle数据字典【Or

【数据库系统概论】数据库的四个基本概念:数据、数据库、数据库管理系统和数据库系统

数据(data)数据库(DataBase,DB)数据库管理系统(DataBaseManagementSystem,DBMS)数据库系统(DataBaseSystem,DBS)感谢💖数据(data)定义:数据是描述事物的符号记录。数据是数据库中存储的基本对象。描述事物的符号可以为数字、文本、图像、音频、视频等。数据库(

【Linux】系统编程线程互斥与同步(C++)

目录【1】线程互斥【1.1】进程线程间的互斥相关背景概念【1.2】互斥量mutex【1.3】互斥量实现原理探究【1.4】RAII的加锁风格【2】可重入VS线程安全【2.1】概念【2.2】常见的线程不安全的情况【2.3】常见的线程安全的情况【2.4】常见不可重入的情况【2.5】常见可重入的情况【2.6】可重入与线程安全联

热文推荐