ubuntu 编译环境搭建 Ubuntu软件源怎么配置

各位老铁们好,相信很多人对ubuntu 编译环境搭建都不是特别的了解,因此呢,今天就来为大家分享下关于ubuntu 编译环境搭建以及Ubuntu软件源怎么配置的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

ubuntu 环境下怎样编译pixhawk px4源码

Ubuntu环境下Pixhawk原生固件PX4的编译

分类:无人机ubuntu代码编译Pixhawk

(3946)(6)

Ubuntu下Pixhawk原生固件PX4的编译这个问题困扰了两天时间,可能是博主脑力不够,主要是环境搭建不起来,主要原因应该是路径的原因,最后在大师傅的帮助下还好成功将路径搭建好,成功编译。

下面就跟大家分享一下环境搭建的过程。

1.操作环境

每次写文章,环境一定要介绍的,不同的环境总会出现不同的问题

我的环境是Windows下面安装虚拟机,虚拟机跑Ubuntu

Windows:win10 64位

虚拟机:VMware Workstation 12 Pro 12.1.0 build-3272444

Ubuntu:Ubuntu15.10

2.编译环境搭建

(1)权限设置

官方提示:

Warning Never ever fix permission problems by using'sudo'. It will create more permission problems in the process and require a system reinstallation to fix them.

意思是你会遇到权限问题,不要用sudo解决,那样会带来更多问题,但是我没听他的,我没用,最后也是实现了

官方提供指令

[plain] view plain copy

然后注销,重新登录生效

(2)安装

更新包列表,安装下面编译PX4的依赖包。PX4主要支持的系列:

NuttX based hardware: Pixhawk, Pixfalcon

Snapdragon Flight hardware: Snapdragon

Raspberry Pi hardware: Raspberry Pi 2

Host simulation: jMAVSim SITL and Gazebo SITL

注意:安装Ninja Build System可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。

[plain] view plain copy

卸载模式管理器

[plain] view plain copy

更新包列表和安装下面的依赖包。务必安装指定的版本的包

[plain] view plain copy

上面代码中红色部分大家需要一高警惕,gcc-arm-none-eabi版本导致PX4/Firmware编译错误,现在apt-get安装的gcc-arm-none-eabi基本上是4.9的版本,但是这个固件需要gcc-arm-none-eabi 4.8de版本,所以最后安装好以后,查看你的gcc-arm-none-eabi版本,如果是4.9需要手动安装4.8的版本,安装gcc-arm-none-eabi 4.8的版本的方法如下:

[plain] view plain copy

【Warning】上面红色的路径一定要添加正确,不然问题很多,我第一次就输入错误,结果结果开不了机了,反复输入密码。博主装的是Ubuntu 64位系统,而上述arm-none-eabi是直接下载的编译好的32位,还需要安装一个东西

[plain] view plain copy

可以检查arm-none-eabi 4.8.4是否安装成功,输入以下指令:

[plain] view plain copy

如果出现如上信息,交叉编译环境搭建就搭建成功了

(3)代码编译

根据PX4中文维基官网教程。

安装Git

[plain] view plain copy

下载代码

[plain] view plain copy

初始化

先进入Firmware文件夹,进而进行初始化、更新子模块操作,耐心的等待……

[plain] view plain copy

权限

编译时会遇到权限问题,执行指令

[plain] view plain copy

-R是对文件下面包含的子文件权限问题,*是对所有文件的权限问题

编译

[plain] view plain copy

注意到“make”是一个字符命令编译工具,“px4fmu-v2”是硬件版本,“default”是默认配置,所有的PX4编译目标遵循这个规则。

最后附一张编译成功的代码,如果这样你还有问题,请给我留言。

[plain] view plain copy

-- nuttx-px4fmu-v2-default

-- The ASM compiler identification is GNU

-- Found assembler:/opt/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc

-- Found PythonInterp:/usr/bin/python(found version"2.7.10")

-- Using C++03

-- Release build type: RelWithDebInfo

-- Adding UAVCAN STM32 platform driver

-- Configuring done

-- Generating done

-- Build files have been written to:/home/lihongwei/Documents/Firmware/build_px4fmu-v2_default

#+@Tools/check_submodules.sh

PX4 CONFIG: px4fmu-v2_default

Scanning dependencies of target git_mavlink

Scanning dependencies of target git_uavcan

Scanning dependencies of target git_gencpp

Scanning dependencies of target git_genmsg

[ 0%] Generating git_init_mavlink_include_mavlink_v1.0.stamp

[ 0%] Generating git_init_src_modules_uavcan_libuavcan.stamp

[ 0%] Generating git_init_Tools_genmsg.stamp

[ 0%] Generating git_init_Tools_gencpp.stamp

[ 0%] Built target git_uavcan

[ 0%] Built target git_mavlink

[ 0%] Built target git_genmsg

[ 0%] Built target git_gencpp

Docker 搭建Ubuntu 16.0.4(银河麒麟V10) 构建环境

在做信创适配的时候,拿到了银河麒麟V10的机器,在完成适配后,机器被项目组收回去重新换了一台银河麒麟v10 SP1的机器,应用重新适配完成后,发现适配出来的安装包无法在其它客户的银河麒麟v10机器上运行,因此需要搭建一个银河麒麟v10的构建环境

关键信息(编译依赖gcc环境,版本太高编译出来的包会有兼容问题):

架构:arm64

OS:银河麒麟v10

gcc版本:5.4.0

银河麒麟基于Ubuntu研发,所以这里选择基于Ubuntu 16.0.4稳定版镜像开始搭建编译环境。

ubuntu默认gcc版本是5.4.0,符合预期,所以直接使用apt安装就可以了

其他一些必要命令的安装

ps: git-lfs、cmake、python3.6版本因有版本要求,默认的版本太低,所以通过源码安装

相关参考: debian更新源时找不到公钥的解决办法

到这里主要的配置就已经配置完了,可能中途还有一些小的问题,可参考可能出现的问题

查看系统发行版本 lsb-releasa-a命令

ubuntu替换系统的python3环境后可能出现的问题

原因:

解决方法:将/usr/lsb_release中首行 python版本号修改为系统默认版本号

参考文章:

参考: Ubuntu中文乱码问题处理

]

(未完)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中写入

终端运行:

板卡上可能要安装一些库

阅读剩余
THE END