zl程序教程

您现在的位置是:首页 >  系统

当前栏目

【应用开发】在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