rk3288交叉编译流程
虚拟机侧,打包rk3288根文件
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
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/root_rk3288/usr/local/lib
LIBS += -L/home/ubuntu/devel/root_rk3288/usr/lib/arm-linux-gnueabihf
虚拟机侧,输出地址变更
trial_lib{
TARGET = Trial
TEMPLATE = lib
Trial.files += $$PWD/Trial.h
Trial.path = /usr/local/include/Trial/
INSTALLS += Trial
DESTDIR = /home/ubuntu/devel/root_rk3288/usr/local/lib/
}
trial_update{
TARGET = trial_update
SOURCES += \
trial_update.cpp
INSTALLS += trial_update
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_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_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/
ubuntu@ubuntu:/opt/rk3288/qt-5.12.3-arm_gl$ gedit ./mkspecs/am335x-tp-gl-g++/gl/qmake.conf
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = eglfs
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
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
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_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
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
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和本地窗口系统直接的接口