qt版本更新比較快,不知道選哪個版本合適,故選擇一個較新版本的。
平台imx6 + linux4.1.16 + qt5.10.1
采用明遠智睿提供的編譯器:fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0.sh,安裝在目錄/opt/fsl-imx-fb/4.1.15-2.1.0/目錄下
明遠已經幫客戶設置好了編譯環境變量,在文件/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/env-*****.sh文件里面。
運行該文件即可配置好環境。
接着下載QT5.10.1源碼並解壓:
源碼配置方式參考....../qtbase/mkspec/device/linux-imx6-g++/qmake.conf文件,
推薦配置為:./configure -prefix /usr/local/qt5 -extprefix $HOME/imx6/qt5 -device linux-imx6-g++ -device-option CROSS_COMPILE=$HOME/imx6/toolchain/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- -sysroot $HOME/imx6/toolchain/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi -nomake examples -nomake tests -v
根據自己的安裝目錄更改-prefix 和 -extprefix選項,並且更改好交叉編譯器環境,
在配置過程中發現can not find crti.c,crt1.o等錯誤,
查找編譯器目錄下存在這幾個文件,故很大可能是環境變量有問題,仔細檢查了N遍環境變量配置,沒發現有問題的地方,
比對明遠他提供的環境變量配置文件,發現--sysroot指定的路徑和SDKTARGETSYSROOT環境變量和sysroot設置一樣的值,果斷把sysroot指定為SDKTARGETSYSROOT,在執行configure,故障解除。
接着執行make
報錯找不到zconf.h目錄下定義的幾個宏,原因應該是電腦zlib庫版本的問題,於是采用qt自身的zlib庫,及在配置的時候加上-qt-zlib配置選項
繼續make 成功。接下來就是將編譯好的庫文件放到開發板的文件系統里面,安放位置由編譯配置時的-prefix指定。設置好QT運行環境變量。如何設置,請聽下回詳解。