今天我们开始在ubuntu下搭建qt的开发环境
准备工作,所有资料都在百度网盘。
链接: https://pan.baidu.com/s/1FNo4ZpSStmxh7YVBA1LTOw
提取码: 6u76
网盘包括qt环境以及后续环境的交叉编译工具,移植的库文件,以及代码(qt+lvgl)
新森智能显示控制器开发环境搭建
开发环境要求
安装ubuntu或者ubuntu虚拟机 (Ubuntu18.04)或者以上版本
安装依赖
sudo apt-get install openssh-server
sudo apt-get install lib32z1 lib32ncurses5
sudo apt-get install libuuid1:i386
sudo apt-get install cmake
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt install bc
sudo apt-get install xz-utils
sudo apt-get install automake
sudo apt-get install libtool
sudo apt-get install libevdev-dev
sudo apt-get install pkg-config
sudo apt-get install perl Python2.7
sudo apt-get install git
sudo apt-get install autogen
sudo apt-get install build-essential
sudo apt-get install autoconf
sudo dpkg-reconfigure dash
链接到sh
ls -al /bin/sh
创建文件夹
mkdir /home/ssd201/Desktop/tslib_build
mkdir /home/ssd201/Desktop/ssl_build
mkdir /home/ssd201/Desktop/qt_build
拷贝交叉编译器并且解压
mv gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.gz /opt/
tar -zxvf gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.gz
配置全局交叉编译环境
sudo gedit ~/.bashrc
export PATH=/opt/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin:$PATH
编译tslib
cd /home/ssd201/Desktop
git clone https://github.com/libts/tslib.git
./autogen.sh
./configure --prefix=/home/ssd201/Desktop/tslib_build --host--gcc
Make -j4
Make install
编译openssl
mv openssl-1.1.1g.tar.gz /home/ssd201/Desktop/
cd /home/ssd201/Desktop/
tar -zxvf openssl-1.1.1g.tar.gz
export OPENSSL_LIBS='-L/home/ssd201/Desktop/ssl_build/lib -lssl -lcrypto'
./config no-asm shared no-async --prefix=/home/ssd201/Desktop/ssl_build CC=arm-linux-gnueabihf-gcc
Make -j4
Make install
错误 -m64
修改makefile 文件,找到-m64,删除
编译QT开发环境
cp qt-everywhere-src-5.15.0.tar.xz /home/ssd201/Desktop/
tar -xf qt-everywhere-src-5.15.0.tar.xz
cd qt-everywhere-src-5.15.0/
注意:
将/qtbase/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp qlinuxfbscreen.h
替换成打包目录中的文件
修改QT匹配目标设备
gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
添加:
QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:ratation=0
# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc
QMAKE_CXX = arm-linux-gnueabihf-g++
QMAKE_LINK = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
配置QT库文件
./configure \
-openssl \
-I /home/ssd201/Desktop/ssl_build/include \
-L /home/ssd201/Desktop/ssl_build/lib \
-prefix /home/ssd201/Desktop/qt_build \
-static \
-release \
-opensource \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake -pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-skip qtlocation \
-skip qttools \
-no-sse2 \
-no-cups \
-no-glib \
-no-iconv \
-nomake examples \
-tslib \
-linuxfb \
-I /home/ssd201/Desktop/tslib_build/include \
-L /home/ssd201/Desktop/tslib_build/lib
注意:
-prefix 设置部署路径
-I XXX 设置引用头文件路径
-I XXX 设置链接库路径
编译
make -j32
make install
make install 失败会是python版本问题,安装 python3.0以上版本
sudo apt-get install python
export PATH=/home/ssd201/Desktop/qt_build/bin:$PATH
错误问题
../src/corelib/global/qfloat16.h:300:7: error: ‘numeric_limits’ is not a class template
修改 Src/qtbase/src/corelib/global/qglobal.h
#ifdef __cplusplus
#include <type_traits>
#include <cstddef>
#include <utility>
+++ # include <limits> //加上这行
#endif
#ifndef ASSEMBLER
#include <assert.h>
#include <stddef.h>
#endifh
欢迎大家加微信
产品咨询
技术咨询