Firefly开源社区
标题: Qt5.4 for rk3288编译要点(x11和linuxfb) [打印本页]
作者: ganggangstyle 时间: 2015-2-27 13:41
标题: Qt5.4 for rk3288编译要点(x11和linuxfb)
本帖最后由 ganggangstyle 于 2015-2-27 18:46 编辑
社区资料真心少,这里贡献一点点前期工作经验 编译Qt5.4 for RK3288(X11)
希望firefly尽快完成内核的升级和opengl内核支持!
sudo apt-get install build-essential lzop libncurses5-dev libssl-dev
# 如果使用的是 64 位的 Ubuntu,还需要安装:
sudo apt-get install libc6:i386
环境变量
export QT_SYSROOT=/home/gang/RK3288/Qt5.4forRK3288/MountFolder
export MONTFOLDER=/home/gang/RK3288/Qt5.4forRK3288/MountFolder
export QT_INSTALL_DIR=/home/gang/RK3288/Qt5.4forRK3288/qt5.4ForRK3288Installed
export ARCH=arm
export CROSS_COMPILE=/home/gang/IFC6410/toolchain/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-
1.解压img
git clone https://github.com/TeeFirefly/rk2918_tools.git
cd rk2918_tools
make
sudo cp afptool img_unpack img_maker mkkrnlimg /usr/local/bin
img_unpack Firefly-RK3288_Ubuntu14.04_201501271612.img .
afptool -unpack update.img update
2.挂至目录
mount -o loop imgfile ImgMountFolder
3.配置qt源码配置文件
qtbase->mkspec->device->rk3288->qmake.conf
主要添加x11库的支持
QMAKE_LIBS = -L$${MONTFOLDER}/usr/lib/arm-linux-gnueabihf -L$${MONTFOLDER}/lib/arm-linux-gnueabihf -dynamic-linker -lxcb -lXau -lXdmcp -lc-2.19 -lld-linux-armhf -lXi -lXext -lX11
# modifications to g++.conf
QMAKE_CC = $${CROSS_COMPILE}gcc
QMAKE_CXX = $${CROSS_COMPILE}g++
QMAKE_LINK = $${CROSS_COMPILE}g++
QMAKE_LINK_SHLIB = $${CROSS_COMPILE}g++
QMAKE_CFLAGS = -O2 -march=armv7-a -mfpu=neon -mfloat-abi=hard
QMAKE_CXXFLAGS = -O2 -march=armv7-a -mfpu=neon -mfloat-abi=hard
# modifications to linux.conf
QMAKE_AR = $${CROSS_COMPILE}ar cqs
QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
QMAKE_NM = $${CROSS_COMPILE}nm -P
QMAKE_STRIP = $${CROSS_COMPILE}strip
4.检查环境变量
echo $QT_INSTALL_DIR
echo $CROSS_COMPILE
echo $ARCH
echo $QT_SYSROOT
5.配置Qt源码
./configure -v --prefix=/qt5.4-for-rk3288-installed -confirm-license -opensource -device rk3288 -device-option CROSS_COMPILE=/home/gang/IFC6410/toolchain/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf- -opengl es2 -no-c++11 -optimized-qmake -qreal float -sysroot /home/gang/RK3288/Qt5.4forRK3288/MountFolder -qt-xcb -no-gcc-sysroot -qt-zlib -no-dbus
6.提示找不到库,在${MONTFOLDER}/usr/lib/arm-linux-gnueabihf目录下创建软链接(去除版本号版本)
ls *X11
ln -s AAA.so.1.1 AAA.so
解决所有找不到库文件
找不到-lxcb。。。等
7.检查configure配置结果
make -j4
make install
如果报错
:(.text+0x24):undefined reference to `__libc_csu_fini'
:(.text+0x2c):undefined reference to `__libc_csu_init'
collect2:error: ld returned 1 exit status
说明libc的指向有问题
修正libc.so指向,或者不用-lc将libc的名称直接用其他的,比如-lc-2.19
至此qt5.4已经编译完成,再进行qt creater配置即可进行开发。
ps1:(我这里配置有添加opengl,但是由于内核支持还不行,不能用,但是可以用x11和framebuffer模式)
ps2:也是内核问题,板子的NFS没有弄成功,否则可以不需要挂载镜像文件,直接用nfs调用板子上文件,如果谁nfs可用了,求一教程,谢谢。
--nfs已经收到版主的回复,nfs明天测试之后发结果,谢谢版主。
作者: zhansb 时间: 2015-2-27 19:00
NFS参考帖子:http://developer.t-firefly.com/thread-818-1-1.html
作者: ganggangstyle 时间: 2015-2-28 11:58
nfs在版主链接后测试成功,这样就可以不用从镜像挂载arm的roofs了,直接挂载nfs,需要什么库直接在板载上安装,pc这边引用就ok啦~
作者: zhansb 时间: 2015-2-28 12:07
谢谢楼主的分享:lol
作者: lizhengchao 时间: 2016-8-1 14:22
楼主你好,请问这些操作是直接在rk3288板子上运行的吗,小白不怎么看的懂,能不能说的详细一点呢
作者: 我不是胖子 时间: 2019-6-28 11:28
不懂,折腾两天了,也没有搞定交叉编译工具链
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) |
Powered by Discuz! X3.1 |