qt-everywhere 交叉编译安装

qt-everywhere安装:
下载地址:http://download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz.mirrorlist
产考地址:https://www.dazhuanlan.com/2019/08/18/5d59671023617/
https://my.oschina.net/u/4289610/blog/3418189
http://www.360doc.com/content/12/0620/18/1671317_219471055.shtml

https://blog.csdn.net/kkvvll2/article/details/23468533?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduend~default-2-23468533.nonecase&utm_term=qt%20%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91%E5%90%8E%E9%9C%80%E8%A6%81xlib%E4%B9%88&spm=1000.2123.3001.4430
常见出错配置:https://blog.csdn.net/yihui8/article/details/43706587?utm_source=blogxgwz8
清除配置: make confclean
QT5以下版本:https://wiki.qt.io/Building_Qt_for_Embedded_Linux
主机构建:For the host system (your own workstation) where the development will be done. We will refer to this as the host build

目标构建:注意-xplatform

echo "yes" |./configure -prefix /opt/qt-embedded-4.7.2-target -opensource -embedded armv7 -xplatform qws/linux-arm-g++ \
-no-webkit -qt-libtiff -qt-libmng \
-qt-mouse-linuxinput -qt-mouse-pc \
-qt-gfx-transformed -no-neon -qt-gfx-linuxfb \
-qt-libjpeg -qt-libpng -little-endian -no-mouse-linuxtp -no-pch \
-nomake tools -nomake examples -nomake demos -nomake docs \
-qt-mouse-tslib  -I/usr/local/tslib/include -L/usr/local/tslib/lib 

注意几点:
1:如果使用-static编译,那你的font目录要和你install的一致,否则即便修改QT_QWS_FONTDIR也是无效的
2:修改编译器的时候最好以linux打头,最好直接改qmake.conf即可
3:注意编译器的版本也会有差别,比如4.3.2的arm-linux-g++编译出来可以,不代表4.4.1的编译出来可以,还需要考虑目标板的文件系统中的LIBC版本
(仔细查看,发现还有其他问题,4.4.1目录下的arm-linux-g++是个软连接指向当前目录的arm-none-linux-gnueabi-g++,而4.3.2的不是,意味着这个应该是讯为的编译环境是改过的)
4:arm-2009q3是编译内核的编译链,应用不是?,这个到底有什么差别呢?QT实际编译用的是arm-linux-gcc-4.3.2,后来测试用2008q1的也可以
历史版本下载:https://blog.csdn.net/jgw2008/article/details/83413569

QT5以上版本:https://doc.qt.io/qt-5/embedded-linux.html
在mkspecs目录下建编译链的对应目录:arm-none-linux-gnueabi 与下面的xplatform
然后在qmake.conf新增3行:
QT_QPA_DEFAULT_PLATFORM选项是指定图形插件, Qt5将各平台底层抽象为一个 qpa 插件,通常在mac上是cocoa, 在window上是windows, 在linux X11下是xcb, 如果有OPENGL支持, 那么选eglfs。而对于无硬件加速的设备,则选择linuxfb,。

QT_QPA_DEFAULT_PLATFORM=linuxfbQMAKE_CFLAGS_RELEASE += -O2 -march=armv7-aQMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a#然后修改对应的编译链

./configure -v -prefix /usr/local/arm/qt-5.2 -release -opensource  -xplatform arm-none-linux-gnueabi \
-make libs -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-libpng -qt-zlib \
-no-opengl -no-sse2 -no-openssl -no-nis -no-cups -no-glib -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info  \
-nomake examples -nomake tools -nomake demos -nomake docs

可选项:
-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib

make && make install
可能遇到问题:
1:Basic XLib functionality test failed!
apt-get update
apt-get install libX11-dev libXext-dev libXtst-dev

测试:板子上屏蔽rcS中qt4的运行,跑examples/widgets/wiggly -qws 即可,出现helloworld即为ok
板子运行可能会报错:没有libz.so ,这个文件可以从编译器的目录下拷:4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libz.so.1
qmake编译程序:
qmake -project 生成pro文件
qmake 生成qmake对应的Makefile文件
make

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt是一种广泛使用的跨平台应用程序框架。本文将介绍如何在Ubuntu 18.04上交叉编译Qt 5.12.7的详细教程。 第一步是安装必要的依赖项。打开终端并输入以下命令: sudo apt-get update sudo apt-get install build-essential perl python git p7zip-full 接下来,你需要安装交叉编译工具链。在此示例中,我们将以ARM Cortex-A7为目标平台。 sudo apt-get install g++-arm-linux-gnueabihf libc6-armhf-cross-armel-cross binutils-arm-linux-gnueabihf 然后,创建一个新的目录并切换到该目录中,然后从Qt官方网站上下载最新的Qt源代码: mkdir qt-cross-compile && cd qt-cross-compile wget https://download.qt.io/archive/qt/5.12/5.12.7/single/qt-everywhere-src-5.12.7.tar.xz tar xvf qt-everywhere-src-5.12.7.tar.xz 接下来,创建一个称为“qt5-armhf.conf”的新文件,需要根据目标平台进行相应的更改: cd qt-everywhere-src-5.12.7/qtbase/mkspecs cp -r linux-arm-gnueabi-g++/ qt5-armhf cd qt5-armhf vi qmake.conf 确保以下行已正确配置: 将“QMAKE_CFLAGS”和“QMAKE_CXXFLAGS”修改为: QMAKE_CFLAGS = -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard --sysroot=/usr/arm-linux-gnueabihf/ QMAKE_CXXFLAGS = $$QMAKE_CFLAGS 对于“QMAKE_LINK”和“QMAKE_LINK_SHLIB”,添加以下行: QMAKE_LINK = arm-linux-gnueabihf-g++ QMAKE_LINK_SHLIB = $$QMAKE_LINK 接下来,进入Qt源代码目录并构建一个交叉编译版本: cd ../../.. ./configure -prefix /opt/qt5-armhf -static -opensource -confirm-license -release -skip webengine -skip wayland -skip qtgamepad make -j4 接下来,安装Qt到目标目录: sudo make install 完成后,你可以在目标文件夹/opt/qt5-armhf找到已安装Qt库。现在你可以使用Qt Creator或手动创建项目并在Ubuntu 18.04中进行交叉编译
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值