Firefly开源社区

Qt5.4 for rk3288编译要点(x11和linuxfb)

23

积分

0

威望

0

贡献

技术小白

积分
23
发表于 2015-2-27 13:41:09     
本帖最后由 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明天测试之后发结果,谢谢版主。







回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2015-2-27 19:00:04     
回复

使用道具 举报

23

积分

0

威望

0

贡献

技术小白

积分
23
发表于 2015-2-28 11:58:33     
nfs在版主链接后测试成功,这样就可以不用从镜像挂载arm的roofs了,直接挂载nfs,需要什么库直接在板载上安装,pc这边引用就ok啦~
回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2015-2-28 12:07:57     
谢谢楼主的分享:lol
回复

使用道具 举报

42

积分

0

威望

0

贡献

游客

积分
42
发表于 2016-8-1 14:22:08     
楼主你好,请问这些操作是直接在rk3288板子上运行的吗,小白不怎么看的懂,能不能说的详细一点呢
回复

使用道具 举报

50

积分

0

威望

0

贡献

技术小白

积分
50
QQ
发表于 2019-6-28 11:28:38     
不懂,折腾两天了,也没有搞定交叉编译工具链
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表