Qt5 嵌入式裝置QT5動態庫編譯,QT5移植

2021-07-31 12:00:34 字數 3320 閱讀 7033

- perl 5.8 or later

- python 2.7 or later

- c++ compiler supporting the c++98 standard(sdk提供)

- 編譯套裝 `sudo apt-get install build-essential`

sudo apt-get install git git-core

sudo apt-get install autoconf bison flex gperf

sudo apt install libtool

編輯~/.bashrc 新增:

export path="/home/codebee/ti-linux-am57xx/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$path"

進入qt-everywhere-opensource-src-5.6.2/qtbase/mkspecs資料夾,拷貝linux-arm-gnueabi-g++命名為linux-arm-gnueabihf 開啟其中的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

qmake_libs_egl += -legl

qmake_libs_opengl_es2 += -lglesv2 -legl -lgal

include(../common/linux.conf)

include(../common/gcc-base-unix.conf)

include(../common/g++-unix.conf)

# 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++

# 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

load(qt_config)

進入qt-everywhere-opensource-src-5.6.2資料夾 新建config.sh檔案 內容如下

./configure -opensource -confirm-license \

-release -c++std c++11 \

--prefix=/opt/

qt5 \

-xplatform linux-arm-gnueabihf \

-shared \

-iconv \

-developer-build \

-eglfs -opengl es2 \

-qt-zlib -qt-libjpeg -qt-libpng -dbus-runtime \

-nomake examples -nomake tests -no-xcb -no-iconv \

-skip qtenginio -skip qtlocation -skip qt********** \

-skip qtwebsockets -v

#-tslib \

#-make tools \

#-v 是詳細輸出模式

#--prefix是make install後編譯好的qt安裝的位置

# -no-icu, this will disable the webkit.

#make arch=arm cross_compile=arm-linux-gnueabihf- -j4

#make install

執行 config.sh不出錯的話makefile就生成好了,接下來執行( -j4意思是用四個執行緒編譯,和自己cpu數一致就行不是數越大越快)

make -j4

sudo make install

編譯好的qt打包拷貝到開發板的/opt目錄解壓

vi /etc/ld.so.conf 新增一行/opt/lib

然後執行sudo ldconfig -v

export qtdir=/opt

export qt_qpa_fontdir=$qtdir/lib/fonts

export qt_qpa_platform_plugin_path=$qtdir/plugins

export ld_library_path=$qtdir/lib:$ld_library_path

#export qt_qpa_platform=linuxfb:fb=/dev/fb0:size=1920x1080:mmsize=1024x768:offset=0x0:tty=/dev/tty1

export qml_import_path=$qtdir/qml

export qml2_import_path=$qtdir/qml

export qt_qpa_eglfs_fb="/dev/fb0"

#export qt_qpa_eglfs_width=1920

#export qt_qpa_eglfs_height=1080

export qt_qpa_eglfs_depth=32

#export qt_qpa_eglfs_physical_width=1920

#export qt_qpa_eglfs_physical_height=1080

嵌入式Linux上Qt5的中文顯示

qt5中文顯示 qt5預設原始碼字符集和執行字符集為utf8,所以預設情況下只要中文使用的是utf8編碼格式,qt5都可以識別,當然,如果是其他編碼格式的話就需要做一些轉換。這裡所說的識別是只是第一步,如果需要正常顯示的話還需要對應的字型檔案,也就是通常的的ttf檔案等,這種檔案描述了編碼和字型之間...

在qt5中嵌入matplotlib

from matplotlib.backends.backend qt5agg import figurecanvasqtagg as figurecanvas from matplotlib.figure import figure import matplotlib.pyplot as plt ...

QT5程式設計小記

1.今天在用qt寫串列埠小例項的時候碰到qt5 c2001 常量中有換行符等問題,因為是qt5,很多qt4的解決方案是無效的的。解決方案 用記事本開啟你的cpp檔案,另存為utf8格式 2.之前一直使用qdebug qstring 串列埠開始寫資料 後台列印一直亂碼 解決方案 qdebug qstr...