在 x86 交叉编译rk3288流程

36 篇文章 0 订阅
7 篇文章 0 订阅

rk3288交叉编译流程

虚拟机侧,打包rk3288根文件

#tar -czvPf /mnt/nfs/usr.tar.gz /usr --exclude=games --exclude=share --exclude=sbin --exclude=lib/firefox --exclude=local/lib/pppd --exclude=include/valgrind --exclude=include/libdrm --exclude=lib/valgrind --exclude=lib/thunderbird --exclude=lib/unity-settings-daemon-1.0 --exclude=local/include/3DDisplay --exclude=/usr/lib/cups >/dev/null

#tar -czvPf /mnt/nfs/lib.tar.gz /lib >/dev/null
#tar -czvPf /mnt/nfs/bin.tar.gz /bin >/dev/null
#tar -czvPf /mnt/nfs/opt.tar.gz /opt >/dev/null
#tar -czvPf /mnt/nfs/sbin.tar.gz /sbin >/dev/null


sudo rsync -avx root@192.168.30.213:/ ./ubuntu/
$ pwd
/home/ubuntu/rk3288-linux/ubuntu_make

sudo cp -r ubuntu/* ../../devel/root_rk3288/

虚拟机侧,链接库文件地址

sudo rm /lib/arm-linux-gnueabihf
sudo rm /usr/lib/arm-linux-gnueabihf

sudo ln -s /home/ubuntu/devel/root_rk3288/lib/arm-linux-gnueabihf /lib/arm-linux-gnueabihf
sudo ln -s /home/ubuntu/devel/root_rk3288/usr/lib/arm-linux-gnueabihf /usr/lib/arm-linux-gnueabihf

虚拟机侧,pro文件变更

INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/include
INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/local/include
INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/include/arm-linux-gnueabihf

#HEADERS += /home/ubuntu/devel/root_rk3288/usr/include/arm-linux-gnueabihf/c++/7/bits/c++config.h

#INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/include/c++/7
#INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/include/c++/7/bits

#INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/include/arm-linux-gnueabihf/c++/7
#INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/include/arm-linux-gnueabihf/c++/7/bits
INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/include/c++/5

INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/include/eigen3/Eigen
INCLUDEPATH += /home/ubuntu/devel/root_rk3288/usr/include/lua5.3


LIBS += -L/opt/rk3288/qt-5.12.3-arm_gl/lib
LIBS += -L/opt/rk3288/open_lib/gfx_rel_es8.x
LIBS += -L/opt/rk3288/tslib/libl


#LIBS += -L/home/ubuntu/devel/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/


#LIBS += -L/home/ubuntu/devel/root_rk3288/usr/local/lib/gfx_rel_es8.x
#LIBS += -L/home/ubuntu/devel/root_rk3288/usr/local/lib/tslib/lib
LIBS += -L/home/ubuntu/devel/root_rk3288/usr/local/lib
LIBS += -L/home/ubuntu/devel/root_rk3288/usr/lib/arm-linux-gnueabihf

#LIBS += -L/home/ubuntu/devel/root_rk3288/lib/arm-linux-gnueabihf

#LIBS += -L/home/ubuntu/devel/root_rk3288/usr/bin/gcc-7
#LIBS += -L/home/ubuntu/devel/root_rk3288/usr/bin/g++-7



虚拟机侧,输出地址变更

    trial_lib{
            TARGET = Trial
            TEMPLATE = lib
            Trial.files += $$PWD/Trial.h
            Trial.path = /usr/local/include/Trial/
            INSTALLS += Trial
            #DESTDIR = /usr/local/lib
            DESTDIR = /home/ubuntu/devel/root_rk3288/usr/local/lib/
    }

    trial_update{
        TARGET   = trial_update
        SOURCES += \
                trial_update.cpp

            INSTALLS += trial_update
            #DESTDIR = /usr/local/lib
            DESTDIR = /home/ubuntu/devel/root_rk3288/usr/local/lib/

虚拟机侧,rk3288编译包变更

gedit ./mkspecs/modules/qt_lib_gui_private.pri
################################################################################################################################
QT.gui_private.VERSION = 5.12.3
QT.gui_private.name = QtGui
QT.gui_private.module =
QT.gui_private.libs = $$QT_MODULE_LIB_BASE
QT.gui_private.includes = $$QT_MODULE_INCLUDE_BASE/QtGui/5.12.3 $$QT_MODULE_INCLUDE_BASE/QtGui/5.12.3/QtGui
QT.gui_private.frameworks =
QT.gui_private.depends = core_private gui
QT.gui_private.uses =
QT.gui_private.module_config = v2 internal_module
QT.gui_private.enabled_features = egl eglfs evdev freetype gif harfbuzz ico jpeg linuxfb multiprocess png tslib tuiotouch vnc
QT.gui_private.disabled_features = xcb accessibility-atspi-bridge dxguid angle_d3d11_qdtd direct2d direct2d1_1 dxgi direct3d11 direct3d11_1 direct3d9 directfb drm_atomic dxgi1_2 egl_x11 eglfs_brcm eglfs_egldevice eglfs_gbm eglfs_mali eglfs_openwfd eglfs_rcar eglfs_viv eglfs_viv_wl eglfs_vsp2 xlib xcb-xlib eglfs_x11 system-freetype fontconfig integrityfb integrityhid kms libinput libinput-axis-api mirclient mtdev system-harfbuzz system-jpeg system-png system-xcb vsp2 xkbcommon
#QMAKE_LIBS_OPENGL_ES2 = /opt/rk3288/open_lib/gfx_rel_es8.x/libGLESv2.so
QMAKE_INCDIR_OPENGL_ES2 = /opt/rk3288/open_lib/GFX_Linux_SDK/OGLES2/SDKPackage/Builds/OGLES2/Include/ /opt/rk3288/open_lib/include /opt/rk3288/open_lib/GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/
#QMAKE_LIBS_EGL = /opt/rk3288/open_lib/gfx_rel_es8.x/libEGL.so /opt/rk3288/open_lib/gfx_rel_es8.x/libGLESv2.so
QMAKE_INCDIR_EGL = /opt/rk3288/open_lib/GFX_Linux_SDK/OGLES2/SDKPackage/Builds/OGLES2/Include/ /opt/rk3288/open_lib/include /opt/rk3288/open_lib/GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/
#QMAKE_LIBS_TSLIB = /opt/rk3288/tslib/lib/libts.so
################################################################################################################################



ubuntu@ubuntu:/opt/rk3288/qt-5.12.3-arm_gl$ gedit ./mkspecs/am335x-tp-gl-g++/gl/qmake.conf
################################################################################################################################
#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = eglfs       #qpa图形插件,
#QMAKE_CFLAGS_RELEASE   += -O2 -march=armv7-a  -mtune=cortex-a8 -mfpu=vfpv3 -mfloat-abi=hard
#QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a  -mtune=cortex-a8 -mfpu=vfpv3 -mfloat-abi=hard
QMAKE_CFLAGS_RELEASE   += -O2 -march=armv7-a  -mtune=cortex-a17 -mfpu=vfpv3 -mfloat-abi=hard
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a  -mtune=cortex-a17 -mfpu=vfpv3 -mfloat-abi=hard


SGX_SDK_ROOT = /opt/rk3288/open_lib
TSLIB_INCDIR            = /opt/rk3288/tslib/include
TSLIB_LIBDIR            = /opt/rk3288/tslib/lib


include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

QMAKE_INCDIR+=/opt/rk3288/tslib/include
QMAKE_LIBDIR+=/opt/rk3288/tslib/lib

# modifications to g++.conf
#QMAKE_CC                = /opt/rk3288/arm-teachbox_a8-linux-gnueabihf/bin/arm-teachbox_a8-linux-gnueabihf-gcc -lts  
#QMAKE_CXX               = /opt/rk3288/arm-teachbox_a8-linux-gnueabihf/bin/arm-teachbox_a8-linux-gnueabihf-g++ -lts 
#QMAKE_LINK              = /opt/rk3288/arm-teachbox_a8-linux-gnueabihf/bin/arm-teachbox_a8-linux-gnueabihf-g++ -lts
#QMAKE_LINK_SHLIB        = /opt/rk3288/arm-teachbox_a8-linux-gnueabihf/bin/arm-teachbox_a8-linux-gnueabihf-g++ -lts 

QMAKE_CC                = /home/ubuntu/devel/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -lts  
QMAKE_CXX               = /home/ubuntu/devel/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -lts 
QMAKE_LINK              = /home/ubuntu/devel/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB        = /home/ubuntu/devel/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -lts 

# modifications to linux.conf
#QMAKE_AR                =  /opt/rk3288/arm-teachbox_a8-linux-gnueabihf/bin/arm-teachbox_a8-linux-gnueabihf-ar cqs
#QMAKE_OBJCOPY           = /opt/rk3288/arm-teachbox_a8-linux-gnueabihf/bin/arm-teachbox_a8-linux-gnueabihf-objcopy
#QMAKE_NM                = /opt/rk3288/arm-teachbox_a8-linux-gnueabihf/bin/arm-teachbox_a8-linux-gnueabihf-nm -P
#QMAKE_STRIP             = /opt/rk3288/arm-teachbox_a8-linux-gnueabihf/bin/arm-teachbox_a8-linux-gnueabihf-strip

QMAKE_AR                =  /home/ubuntu/devel/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = /home/ubuntu/devel/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy
QMAKE_NM                = /home/ubuntu/devel/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-nm -P
QMAKE_STRIP             = /home/ubuntu/devel/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip

QMAKE_INCDIR_OPENGL_ES2 = $$SGX_SDK_ROOT/GFX_Linux_SDK/OGLES2/SDKPackage/Builds/OGLES2/Include/
QMAKE_INCDIR_OPENGL_ES2 += $$SGX_SDK_ROOT/GFX_Linux_SDK/OGLES2/SDKPackage/Builds/OGLES2/LinuxOMAP3/Include/
QMAKE_INCDIR_OPENGL_ES2 += $$SGX_SDK_ROOT/include
QMAKE_INCDIR_OPENGL_ES2 += $$SGX_SDK_ROOT/GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/
QMAKE_LIBDIR_OPENGL_ES2 = $$SGX_SDK_ROOT/gfx_rel_es8.x/ 
QMAKE_LIBS_OPENGL_ES2   = -lEGL -lGLESv2 -lGLES_CM -lIMGegl -lsrv_um -lusc

QMAKE_INCDIR_OPENGL     += $$SGX_SDK_ROOT/GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/
QMAKE_LIBDIR_OPENGL     = $$SGX_SDK_ROOT/gfx_rel_es8.x
QMAKE_LIBDIR_OPENGL_QT  = $$SGX_SDK_ROOT/gfx_rel_es8.x
QMAKE_LIBS_OPENGL_ES1   = -lEGL -lGLES_CM -lIMGegl -lsrv_um -lusc

QMAKE_INCDIR_OPENVG     = $$SGX_SDK_ROOT/GFX_Linux_SDK/OVG/SDKPackage/Builds/OVG/Include/
QMAKE_LIBDIR_OPENVG     = $$SGX_SDK_ROOT/gfx_rel_es8.x/
QMAKE_LIBS_OPENVG       = -lEGL -lGLESv2 -lGLES_CM -lIMGegl -lsrv_um -lOpenVG -lOpenVGU

QMAKE_INCDIR_EGL        = $$QMAKE_INCDIR_OPENGL_ES2
#QMAKE_INCDIR_EGL        += $$QT_INSTALL_DIR/src/3rdparty/powervr/wsegl2
#QMAKE_INCDIR_POWERVR    = $$QT_INSTALL_DIR/src/3rdparty/powervr/wsegl2
QMAKE_INCDIR_EGL        += $$QT_BUILD_TREE/src/3rdparty/powervr/wsegl2
QMAKE_INCDIR_POWERVR    = $$QT_BUILD_TREE/src/3rdparty/powervr/wsegl2

QMAKE_LIBDIR_EGL        = $$QMAKE_LIBDIR_OPENGL_ES2
QMAKE_LIBS_EGL          = -lEGL -lIMGegl -lsrv_um -lGLESv2 -lGLES_CM -lusc


QMAKE_INCDIR += $$TSLIB_INCDIR 
QMAKE_INCDIR += $$QMAKE_INCDIR_OPENGL_ES2
QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2 
QMAKE_LIBDIR += $$TSLIB_LIBDIR
QMAKE_LIBS = $$QMAKE_LIBS_OPENGL_ES2 -lts

load(qt_config)
################################################################################################################################

rk3288侧,拷贝及安装库

sudo apt install -y qt5-default

sudo vim /etc/ld.so.conf
###########################################################
#++/usr/local/lib/
###########################################################

sudo mv lib* /usr/local/lib/
rpdzkj@rpdzkj:~$ cd /usr/local/lib/
rpdzkj@rpdzkj:/usr/local/lib$ sudo tar -xvf lib.tar.gz
rpdzkj@rpdzkj:/usr/local/lib$ sudo ln -s libts-0.0.so.0.1.1 libts-0.0.so.0
rpdzkj@rpdzkj:/usr/local/lib$ sudo ln -s liblua5.3.so.0.0.0 liblua5.3.so.0
sudo ldconfig

rk3288侧,库文件的安装

sudo apt install -y qt5-default qt5-qmake g++
sudo apt install -y libboost-all-dev liblua5.3-dev lua5.3 sshpass libeigen3-dev libmxml-dev


#sudo apt install libyaml-cpp-dev
#sudo apt install -y libssl-dev
#sudo apt install libspdlog-dev
#sudo apt install libts-dev


cd /usr/lib/arm-linux-gnueabihf/
sudo ln -s libyaml-cpp.so.0.6 libyaml-cpp.so.0.5

sudo ln -s /usr/lib/arm-linux-gnueabihf/libyaml-cpp.so /usr/local/lib/libyaml-cpp.so.0.5


rk3288侧,在Ubuntu上安装和链接GLES的库

 sudo apt install libgles1-mesa
 sudo apt install libgles2-mesa
 
 
 在Ubuntu上安装和链接GLES的库

1.安装GLES2.0的库

sudo apt-get install libgles2-mesa-dev
2.链接GLES2.0以及相关的库所需的链接选项

-lGLESv2 -lEGL -lm -lX11
 

其中EGL是Opengl ES渲染API和本地窗口系统直接的接口

rk3288侧,在Ubuntu上安装和链接GLES的库

 sudo apt install libgles1-mesa
 sudo apt install libgles2-mesa
 
 
 在Ubuntu上安装和链接GLES的库

1.安装GLES2.0的库

sudo apt-get install libgles2-mesa-dev
2.链接GLES2.0以及相关的库所需的链接选项

-lGLESv2 -lEGL -lm -lX11
 

其中EGL是Opengl ES渲染API和本地窗口系统直接的接口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值