当前位置:首页 » 编程软件 » apt编译环境

apt编译环境

发布时间: 2024-11-30 23:28:12

linux SDK解压编译环境搭建

Linux开发笔记1-20220917



解压完成后,查看文件列表。



安装依赖软件包:



使用以下命令安装SDK编译环境所需软件包:





  • sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool




  • sudo apt-get install expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support




  • sudo apt-get install qemu-user-static live-build bison flex fakeroot cmake gcc-multilib




  • sudo apt-get install g++-multilib unzip




  • sudo apt-get install device-tree-compiler python-pip libncurses5-dev pyelftools




  • apt-get install device-tree-compiler





安装命令执行后,即可编译SDK。



编译过程耗时较长,可做其他事情。



固件打包工具:mkfirmware.sh



查看img文件实际存放位置:



在recdev目录下执行“ls -al”命令查看。



Ubuntu虚拟机下看不到U盘解决:



若U盘不支持exfat格式,安装“sudo apt-get install exfat-utils”。



若U盘每次插入都被PC识别,可在VMware虚拟机的vmx文件中修改以下内容:





  • 将“usb.restrictions.defaultAllow = "FALSE"”改为“usb.restrictions.defaultAllow = "TRUE"”。





保存并关闭虚拟机,重新打开后U盘符号变为正常。



进入虚拟机后查看U盘。



学习Linux,实践最重要。我之前未接触过Linux,现在主要做硬件设计。我觉得应拓宽知识边界,多一份技能总无害。



研究表明,专注学习和实践6个月,可达到优秀水平。让我们行动起来,让时间见证。



分享的Linux开发笔记,记录了实际项目中遇到的问题,旨在帮助同样探索Linux开发的朋友们。



分享知识是一种美德,请帮忙点赞转发,惠及更多需要的朋友。

Ⅱ Android开发APT技术,与使用案例

annotationProcessor,全称为 APT,即 Annotation Processor Tool,这一工具在 Java 编译过程中,负责扫描和处理注解,获取注解信息与被注解对象的相关数据,进而自动生成 Java 代码。APT 在编译时介入,对源代码进行处理,提高代码执行性能,避免重复的代码编写。



ButterKnife、EventBus、ARouter、GreenDAO 等 Android 开发框架均使用了 APT 技术。在 ARouter 框架中,路由表的生成过程利用了 APT 技术,这一表在运行时生成,用于填充 WareHouse 路由元信息。



APT 的主要作用是在编译阶段,即在 Java 源代码转换为 class 文件,并最终生成 dex 文件打入 APK 包中时,处理注解。APT 的作用分为两部分:第一,它在编译开始时介入,处理编译时注解;第二,AOP(Aspect Oridnted Programming)则在编译完成后、生成 dex 文件之前,通过修改 .class 文件,实现代码的修改或添加逻辑,常用于代码监控、修改与分析等场景。



APT 的使用能实现如下效果:减少重复代码编写,通过注解自动完成,如 Butterknife 可以直接通过注解表示 view ID,无需重复的手动编写代码;获取注解及生成代码均在编译时完成,相比于运行时通过反射处理注解,能显着提升程序性能。



APT 不能修改源文件,只能获取注解信息与被注解对象信息,并进行自定义处理。宏观上,APT 是 Java 编译器提供给开发者在编译时处理注解的技术,微观上,具体应用即为继承自 AbstractProcessor 的实现类。



APT 的原理在于,Java 源码编译至 class 文件的过程中,需要经过注解处理器处理,处理器生成的代码同样会经历这一过程,最终生成 class 文件。在 Android 环境中,class 文件被打包为 dex 文件,最后形成 APK 文件。



实现一个基于 APT 的实例,类似于 Butterknife 中的 @BindView 注解,主要步骤包括定义注解、创建注解处理器以及调用处理器生成的代码。实现过程中,需要构建如下的工程结构:




  • app:测试功能

  • apt-annotation:自定义注解模块

  • apt-processor:注解处理器模块

  • apt-sdk:通过反射调用 apt-processor 生成方法的模块



构建步骤如下:




  1. 在 apt-annotation 中定义自定义注解。

  2. 在 apt-processor 中引入依赖,依赖 apt-annotation 并需要依赖 auto-service 第三方库,用于创建注解处理器。

  3. 在 apt-processor/build.gradle 文件中创建注解处理器。

  4. 处理器需继承 AbstractProcessor。

  5. 代码编写中避免使用中文,否则可能无法编译。

  6. ClassCreatorFactory 类负责提供生成新类所需代码。

  7. app 的 gradle 文件中引入相关依赖。

  8. 两个 Activity 中调用相关方法。

  9. 检查目录生成文件。

  10. 在 app 中调用 apt-sdk 的方法。



  11. APT 技术在 Android 开发中的应用解析至此,更多 Android 开发技术可参考《Android 核心技术手册》。

Ⅲ apt常用命令

在使用Apt包管理器时,熟悉常用命令是至关重要的。下面将详细介绍Apt常用命令及其功能,以帮助用户更有效地管理软件包。


搜索包使用命令apt-cache search,可以根据关键词查找符合要求的包。


获取包的详细信息使用命令apt-cache show,可以查看包的描述、大小、版本等。


安装包使用命令sudo apt-get install,安装指定的包。


重新安装包,使用命令sudo apt-get install -i,在重新安装之前显示所有将被更新或删除的文件。


强制安装使用命令sudo apt-get -f install,强制安装,修复缺失的依赖。


删除包使用命令sudo apt-get remove,移除指定的包。


删除包及其配置文件使用命令sudo apt-get remove --purge,彻底移除包及其相关配置。


清理系统使用命令sudo apt-get autoremove --purge,自动移除已卸载包的依赖包以及配置文件。


更新源使用命令sudo apt-get update,更新本地的包源信息。


更新已安装的包使用命令sudo apt-get upgrade,升级已安装的包至最新版本。


升级整个系统使用命令sudo apt-get dist-upgrade,在升级包的同时调整系统设置。


使用 dselect 升级系统使用命令sudo apt-get dselect-upgrade,提供更强大的升级功能。


了解包的依赖关系使用命令apt-cache depends,显示指定包的所有依赖。


了解特定依赖使用命令apt-cache rdepends,显示某个包作为依赖被哪些包使用。


安装编译环境使用命令sudo apt-get build-dep,用于安装特定包的编译所需环境。


下载包的源代码使用命令apt-get source,获取指定包的源代码。


清理下载文件使用命令组合sudo apt-get clean && sudo apt-get autoclean,分别清理已下载的存档文件和过时的包。


检查依赖完整性使用命令sudo apt-get check,确保所有依赖包均处于正常状态。


自动安装所需依赖及升级包使用命令apt-get install,同时安装包及其依赖,自动处理hold标志(停止安装)的情况。


移除包及其依赖使用命令apt-get remove,在移除包时自动处理依赖关系。


完全移除包使用命令apt-get remove --purge,彻底移除包及其相关配置。


通过这些命令,用户可以有效管理软件包,提升系统性能和稳定性。


(3)apt编译环境扩展阅读

APT(the Advanced Packaging Tool)是Ubuntu 软件包管理系统的高级界面,Ubuntu 是基于Debian的,APT由几个名字以“apt-”打头的程序组成。apt-get、apt-cache 和apt-cdrom是处理软件包的命令行工具。

Ⅳ debian怎么搭建c语言编译环境

在linux下面做C的话,编辑器很多,emacs,vim,nano,随便挑一个文本编辑器和笔记本一样用就好了,编译环境的话,你要装这些,有的包可能你已经有了,命令如下
apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,')
apt-get install build-essential
这两个命令会把C和C++编译环境需要的包都装上的

Ⅳ (未完)ubuntu20.04 qt6.2.4 aarch64 开发编译环境配置

install QT6

更新

下载安装工具

文件权限

运行在线安装文件

如果遇到问题:

重新安装libxcb-xinerama文件

重新运行

输入账号,然后安装。选择一个版本,如6.2.4整个勾上,然后Next到下载界面。

install opencv

下载opencv

解压到指定文件夹

新建build文件夹,cmake编译

编译程序,编译完成后安装

install eigen

下载eigen release

解压

编译

完成eigen3的安装

QT include opencv eigen项目迁移到ubuntu后的编译中的报错问题

就可以正常启动qt creator了。

解决方法:

通常安装后就能解决问题,如果不行,考虑下面的软链接方法。

详细见 qt构建遇到 cannot find -l xxx 问题_qt cannot find -l-CSDN博客、 Linux的Qt编译出现:-1: error: cannot find -lGL问题的解决方法-CSDN博客

虽然教程是用的野火鲁班猫,但是方法是通用的

安装cmake及其他

查看cmake版本

关于烧录Raspberry pi Image

树莓派插入SD卡并通电。(使用 Raspberry Pi Imager完成SD镜像烧录。)

可以下载( Ubuntu Lts)作为烧录镜像

Ubuntu server无界面,使用SSH远程访问,使用finalshell:

IP查看tplink中的树莓派IP,端口默认是22

QT creator添加Device

添加设备,可以在局域网中找到设备。

打开设置,然后add一个Device

需要填写IP,端口,user name, 如果没有key,就生成一个key file,然后链接,期间需要输入username对应的密码。出现下面窗口就是配置好了。

详细可以看这个链接 7. 远程连接 - [野火]嵌入式Qt应用开发实战指南-基于LubanCat-RK开发板 文档

qt creator kits交叉编译

PC的Ubuntu20.04中下载交叉编译包 arm-linux-gcc,然后在ARM板卡上部署测试。参考这个网址:

aarch64对应教程如下:

3. Qt程序编译 — [野火]嵌入式Qt应用开发实战指南—基于LubanCat-RK开发板 文档 (embedfire.com)

安装交叉编译器:

先看看自己虚拟机(PC)的信息

然后看下嵌入式设备(arm64)的信息

针对arm64嵌入式系统,使用Ubuntu20.04系统apt 安装交叉编译器, 其安装命令是

通过这个指令获取就不用下面的操作下载压缩包了,

从网盘获取交叉编译器、Qt库文件(针对aarch64平台)、sysroot文件 # 复制文件到虚拟机系统中

查看解压到的位置

查看刚才解压的文件。

安装完了之后在terminal中输入aarch64 + TAB,如下就是安装成了:

编译源码测试:

先写个c文件交叉编译试试

main.cpp内容:

编译通过后通过file指令查看文件类型是否是ELF:64bit LSB shared object,ARM aarch64...。如果是,则完成源码编译。

编译后生成了main可执行文件,拷贝到arm64平台测试,查看输出:hello world!!!。

Qt编译arm64(aarch64)环境搭建

下载qt6.2.4源代码,在虚拟机上编译aarch64版本的库文件

打开QT Creator,打开kits配置套件

如下添加一个/opt目录下的qmake

添加gcc g++ aarch64编译器

添加一个构建套件kit, 如下:

源程序选择构建套件并运行:

在嵌入式设备linux系统上运行编译好的程序:

复制Qt库到板卡,然后设置相应的环境变量,就可以运行程序。 先复制前面编译的Qt程序到板卡,然后简单运行程序:

使用winscp拷贝依赖文件到嵌入式设备上,如树莓派:

解压完成后,设置该库为环境变量

并重新运行程序

如果要永久变更,就在~/.bashrc中写入

终端运行:

板卡上可能要安装一些库

热点内容
创建边界缓存错误是啥 发布:2025-01-10 12:04:26 浏览:570
我的世界畸变生存服务器 发布:2025-01-10 12:02:51 浏览:157
长安unit卓越版有哪些配置 发布:2025-01-10 11:25:25 浏览:100
python安装后怎么打开 发布:2025-01-10 11:08:35 浏览:872
phpjava架构 发布:2025-01-10 10:56:06 浏览:385
python二维排序 发布:2025-01-10 10:56:00 浏览:608
南水北调怎么配置 发布:2025-01-10 10:55:27 浏览:122
广数980系统参数密码是多少 发布:2025-01-10 10:55:25 浏览:578
androidhtml字体 发布:2025-01-10 10:55:01 浏览:788
数据库连接工厂模式 发布:2025-01-10 10:51:00 浏览:489