【应用开发】在Linux下搭建嵌入式Qt交叉编译环境时的笔记(命令记录)
2023-09-11 14:16:59 时间
First step:
sudo apt-get update
sudo apt-get upgrade
Second step:
sudo apt-get install qt5-default
sudo apt-get install qtcreator
Third step:
sudo apt-cahce search aarch64
gcc/g++:
aarch64-linux-gnu-gcc -v
gcc --version
g++ --version
安装自动编译工具:
sudo apt install autoconf automake libtool
proj:(对源码进行配置,然后编译并安装):
./configure --prefix=/usr/local/proj4
make
sudo make install
ld command:
ln -s aarch64-linux-gnu-ld.gold ld
sudo ln -sf aarch64-linux-gnu-ld.gold ld
问题解决:
Ubuntu下编译Qt项目出现libQt5WebEngineCore.so报错:
error: cannot find -lproj
error: /lib/aarch64-linux-gnu/libmali.so: .dynsym local symbol at index 3 (>= sh_info of 3)
error: /lib/aarch64-linux-gnu/libmali.so: .dynsym local symbol at index 4 (>= sh_info of 3)
error: /lib/aarch64-linux-gnu/libmali.so: .dynsym local symbol at index 5 (>= sh_info of 3)
解决办法如下:(/usr/bin)
sudo ln -sf /usr/bin/x86_64-linux-gnu-ld.gold /usr/bin/ld # x86
sudo ln -sf aarch64-linux-gnu-ld.gold ld # arm
#通配符查看
ls -l aarch64*
安装gl库:
Qt5工程会自动导入opengl,所以在linux下需要安装支持的库否则编译会失败:
sudo apt-get install build-essential libgl1-mesa-dev
项目文件:(Plugin.pro)
生成的编译文件放在本地 (新建)build 目录下
问题二:缺少libproj.so
文件
#proj源码编译并安装见上
cd proj-4.9.3/
ls /usr/local/proj4/ #查看是否编译成功
#将编译成功的proj库文件拷贝到新构建项目(build)的bin(新建)下
cp /usr/local/proj4/lib/libproj.* ~/ows/build/bin/
cd ~/ows/build/bin/
./run.sh
run.sh脚本
export LD_LIBRARY_PATH=.
./PluginAppOws
编译OpenGL的QT程序
(一般在电脑本地安装的Qt都是包含相关的Example)
#qmake hellogles3.pro步骤
cd hellogles3/
mkdir bin
cd bin/
qmake ../hellogles3.pro
make
./hellogles3
sudo ./hellogles3
注:
1、qmake
是Qt专用的项目管理工具,对应的工程文件是*.pro
,在Linux下面它会生成Makefile文件。
2、 make
是用来执行生成的Makefile文件。
3、 make
用来执行Makefile,cmake
用来执行CMakeLists.txt,qmake
用来处理*.pro工
程文件。
4、 具体使用时,Linux下,小工程可手动写Makefile,大工程用automake
来帮你生成Makefile,要想跨平台,就用cmake。
安装OpenGL glx:
#1、安装OpenGL Libraby
sudo apt-get install build-essential
#2. 安装OpenGL Utilities
sudo apt-get install libgl1-mesa-dev
#3. 安装OpenGL Utility Toolkit
sudo apt-get install libglu1-mesa-dev
#4.
sudo apt-get install freeglut3-dev
#5. glxinfo
sudo apt-get install mesa-utils
#执行
$ glxinfo
$ glxgears
$ glxinfo | grep version
glx报错信息:
firefly@firefly:~/Desktop$ glxinfo
name of display: :0
Error: couldn't find RGB GLX visual or fbconfig
firefly@firefly:~/Desktop$ glxgears
Error: couldn't get an RGB, Double-buffered visual
类比:
$ glxinfo
$ eglinfo
查看具体缺少文件:
export QT_DEBUG_PLUGINS=1
qtcreator -version
OpenGL-ES测试:
测试命令:
$ sudo test_glmark2_normal.sh
直接测试 glmark2-es2
$ glmark2-es2-wayland
# 查看是脚本还是应用
$ cat glmark2-es2.desktop
$ cat /usr/bin/run-glmark2-es2
$ glmark2-es2
查看开发板的型号:
firefly@firefly:/etc/profile.d$ ffgo
Usage:
ffgo : show this usage
ffgo update: update ffgo
ffgo version: get version
ffgo cmdlist: get support cmd list
ffgo [cmd]: run cmd in cmd list
firefly@firefly:/etc/profile.d$ ffgo update
Permission denied
firefly@firefly:/etc/profile.d$ sudo ffgo update
update success
firefly@firefly:/etc/profile.d$ ffgo version
OS: Ubuntu 20.04.4 LTS
MODEL: Firefly ROC-RK3588S-PC HDMI(Linux)
FIREFLY: v2.11-52-gcd3be58
DATE: 20220421
KERNEL: Linux version 5.10.66 (lvsx@tchip14) (kernel commit id: 6d2f1f043c5e) (sdk version: rk3588_linux_release_20220422_v0.1.0a) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Too
aptitude command:
#aptitude 在处理依赖问题上更佳一些
sudo apt install aptitude
sudo aptitude install libgl1-mesa-dev
相关文章
- Kali linux 渗透测试技术之搭建WordPress Turnkey Linux及检测WordPress 应用程序漏洞
- Linux配置yum源(本地源和网络源)
- Linux性能优化3.3 本章小结
- Linux 有问必答: 如何在红帽系linux中编译Ixgbe驱动
- qt中的进程优先级及应用内存大小设置方法,VS和Qt工程中申请超过2G的内存的方法
- linux下如何使make只输出执行过程中的命令序列
- 【QT】Qt 中 Json 的操作
- 用navicat访问linux数据库,成功实现Navicat访问Linux中安装的MySQL数据库
- 《嵌入式Linux开发实用教程》——1.3 arm-linux交叉编译链
- linux 防止误操作 mysql 数据库技巧
- linux重要的配置文件列表
- Install Qt 5 on Ubuntu(使用qt-opensource-linux-x64-5.7.0.run进行安装,而且是官方的wiki)
- 【正点原子Linux连载】 第三章 Qt优化摘自【正点原子】ATK-DLRV1126Qt开发环境搭建手册
- 【正点原子Linux连载】第四章 使用Qt Designer开发摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 【正点原子Linux连载】第八章 文本读写摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 【正点原子Linux连载】第十一章 网络编程 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 【正点原子Linux连载】第五章 Qt 信号与槽 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 【正点原子Linux连载】第一章在Ubuntu下编写C++--摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 【正点原子Linux连载】第二十六章 APP主界面开发项目 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 【正点原子Linux连载】第二十四章 智能家居物联网项目 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 【正点原子Linux连载】第二十一章 USER-KEY 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 【正点原子Linux连载】 第十九章 CAN Bus 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 【正点原子Linux连载】 第十七章 CAN Bus 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- Linux 之 arm linux 板子与 ubuntu 使用 nfs 进行 mount 挂载进行文件传输的简单整理
- 【Linux】linux经常使用基本命令
- Linux学习笔记(20)linux exec
- Linux下关闭ASLR(地址空间随机化)的方法