UBoot
mkimage -C none -A arm -T script -d boot.cmd boot.scr
Qt 配置和編譯
Qt編譯後要在qtcreater中用不能改變編譯時的路徑,要保持原路徑,不然添加qmake出錯
修改平臺文件
vim ./qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.config
//修改編譯器
# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc
QMAKE_CXX = arm-linux-gnueabihf-g++
QMAKE_LINK = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++
QMAKE_CFLAGS +=-mfpu=neon -marm -mcpu=cortex-a7
QMAKE_CXXFLAGS +=-mfpu=neon -marm -mcpu=cortex-a7 //媒體加速
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
//opengl添加
QMAKE_INCDIR_OPENGL_ES2 +=$$AW_LICHEE_ROOT/tools/pack/chips/sun8iw11p1/hal/gpu/fbdev/include
QMAKE_LIBDIR_OPENGL_ES2 +=$$AW_LICHEE_ROOT/tools/pack/chips/sun8iw11p1/hal/gpu/fbdev/lib
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2
初始化
$./configure \
-opensource \
-confirm-license \
-extprefix ./Qt-5.11 \
-R /usr/lib \
-no-strip \
-c++std c++11 \
-shared \
-nomake examples \
-accessibility \
-no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci \
-no-sql-odbc -no-sql-psql -no-sql-sqlite2 -no-sql-tds \
-no-sql-sqlite -plugin-sql-sqlite \
-no-qml-debug \
-no-sse2 \
-no-sse3 \
-no-ssse3 \
-no-sse4.1 \
-no-sse4.2 \
-no-avx \
-no-avx2 \
-no-mips_dsp \
-no-mips_dspr2 \
-qt-zlib \
-no-journald \
-qt-libpng \
-qt-libjpeg \
-qt-freetype \
-qt-harfbuzz \
-openssl \
-no-xinput2 \
-no-xcb-xlib \
-no-glib \
-no-pulseaudio \
-alsa \
-gui \
-widgets \
-v \
-optimized-qmake \
-no-cups \
-no-iconv \
-evdev \
-no-icu \
-no-fontconfig \
-no-strip \
-pch \
-dbus \
-no-use-gold-linker \
-xplatform linux-arm-gnueabi-g++ \
-no-directfb \
-eglfs \
-qpa eglfs \
-linuxfb \
-no-kms \
-sysroot $SYSROOT \
-opengl es2 \
-no-system-proxies \
-no-slog2 \
-no-pps \
-no-imf \
-no-lgmon \
-tslib \
-device-option CROSS_COMPILE=/usr/local/arm-linux-gnueabihf-
//參數說明
./configure -help 查看
-prefix 安裝路徑
-extprefix 指定sysroot後的安裝路徑 不然路徑是相對sysroot安裝的
-opensource 構建Qt開源版本
-commercial 構建Qt商業版本
-confirm-license自動許可認證
-no-c++11 關閉c++11
-c++11 開啓c++11
-c++std c++11 編譯器支持c++11
-shared 編譯共享庫
-static 編譯靜態庫
-tslib 觸摸庫支持
-no-sql-<driver> 禁止sql <driver> 例如: -no-sql-sqlite
-qt-sql-<driver> 開啓sql <driver>
-plugin-sql-<driver> 將sql <driver> 做爲運行時插件
-D <string> 宏定義
-I <string> 頭文件路徑
-L <string> 庫文件路徑
-make <part> 指定需要編譯部分
-nomake <part> 指定不需要編譯部分
-skip <module> 指定不需要編譯的模塊
-R <string> 添加庫路徑
-l <string> 顯示添加庫
-no-rpath 不使用庫的安裝路徑作爲運行時路徑
-rptah 使用庫的安裝路徑作爲運行時路徑
-strip 裁剪庫
-no-strip 不裁剪庫
-device-option <key=value> 添加設備特定選項
-eglfs qt5程序運行插件
-linuxfb linux幀緩衝
-qpa <name> 設置默認qpa平臺
-xplatform linux-arm-gnueabi-g++ 交叉編譯時指定目標平臺
-opengl es2 支持opengl
根文件系統添加qt
TOUCHSCREEN=/dev/input/ts2
if [ -e /dev/input/ts2 ]; then
TOUCHSCREEN=/dev/input/ts2
elif [ -e /dev/input/ts1 ]; then
TOUCHSCREEN=/dev/input/ts1
elif [ -e /dev/input/ts0 ]; then
TOUCHSCREEN=/dev/input/ts0
fi
export QTDIR=/usr/local/Qt-5.11.3/
export QT_ROOT=$QTDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:/usr/lib/cedarx/:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=eglfs // 指定QPA平臺
export QT_QPA_EGLFS_FB=/dev/fb0 //指定QPA的framebuffer
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
#export LD_PRELOAD=/usr/lib/libts.so
#/usr/lib/preloadable_libiconv.so:
# export QWS_MOUSE_PROTO="Tslib:/dev/input/event4"
export TSLIB_TSDEVICE=$TOUCHSCREEN
# export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event4
export QT_LOGGING_RULES=qt.qpa.input=false
export QT_QPA_EVDEV_DEBUG=0
export QT_QPA_PLATFORM=eglfs
export QT_QPA_GENERIC_PLUGINS=tslib,evdevmouse,evdevkeyboard
#export QT_QPA_GENERIC_PLUGINS=evdevtouch
export QT_QPA_EGLFS_INTEGRATION=eglfs_mali
#export QT_QPA_FB_HIDECURSOR=1
#export QT_QPA_EGLFS_HIDECURSOR=1
#export QT_QPA_EGLFS_ROTATION=90
export QML_IMPORT_PATH=$QT_ROOT/qml
export QML2_IMPORT_PATH=$QT_ROOT/qml
#export QWS_MOUSE_PROTO=
export DBUS_SESSION_BUS_ADDRESS=`cat /tmp/dbusaddr`
開發應用
Qt編譯後要在qtcreater中用不能改變編譯時的路徑,要保持原路徑,不然添加qmake出錯
下載qt-creater
安裝
指定qmake爲編譯好的路徑下
指定交叉編譯工具鏈
如果使用了opengl需要添加
LIBS += -L../ -lGLESv2