樹莓派 Qt5 7交叉編譯

2021-07-25 23:12:38 字數 2048 閱讀 5909

一、準備軟體

2.cross-compile-tools-master.zip

3.gcc-4.7-linaro-rpi-gnueabihf.tbz

二、步驟

2.當掛載完成後,請進入cd /mnt/rasp-pi-rootfs/usr/lib/arm-linux-gnueabihf/檢視兩個so檔案,命令ls -l libdl.so 和ls -l libm.so,看清其指向的檔案是否如lrwxrwxrwx 1 root root 13 jan 10 15:30 libdl.so -> libdl-2.19.so ,如果不是,先刪除原來的軟連線(sudo rm libdl.so),執行sudo ln -s libdl-2.19.so libdl.so(重新建立軟連線),如果arm-linux-gnueabihf資料夾下不存再libdl-2.19.so,看看剛才ls命令其指向的檔案在哪,拷貝至此即可,對於libm同樣操作,原因:防止出現:undefined reference to `__dlopen』等問題,參照

3.compiling qtbase

①cd ~/opt/cross-compile-tools

②sudo ./fixqualifiedlibrarypaths /mnt/rasp-pi-rootfs/ ~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc

③cd ~/opt/qt-everywhere-opensource-src-5.7.1/qtbase folder and run:

./configure -opengl es2 -device linux-rasp-pi-g++ -device-option cross_compile=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5pi -hostprefix /usr/local/qt5pi

上步執行後,qtbase資料夾下將出現乙個config.summary,開啟後修改fontconfig=yes,libinput=yes,udev=yes

接著執行

④make -j 4

⑤sudo make install

⑥cd ~/opt/qt-everywhere-opensource-src-5.7.1/

⑦執行如下命令

for module in qtimageformats qtsvg  qtscript qtxmlpatterns qtdeclarative qtsensors qt3d qtgraphicaleffects  qtlocation ; do  cd $module;  /usr/local/qt5pi/bin/qmake .;  make -j4;  sudo make install;  cd ..; done

4. cd~/opt/

sync; sudo umount /mnt/rasp-pi-rootfs (取消掛載)

sudo dd bs=1m if=2016-11-25-raspbian-jessie.img of=/dev/sdb; sync (燒錄至記憶體卡)

到此就完成了交叉編譯的環境配置

三、qtcreator的配置

參照唯一需要注意的是,電腦寫程式的時候依然需要先掛載sudo mount -o loop,offset=70254592 2016-11-25-raspbian-jessie.img /mnt/rasp-pi-rootfs,需要用到其中的庫

qtcreator .pro檔案要寫上下邊兩句,要不然無法執行,提示找不到遠端路徑

target.path = /home/pi/test

installs += target

四、程式只能全屏顯示

五、如果提示缺少字型

qfont font("fangsong", 16);  

a.setfont(font); 

參照:  

樹莓派 交叉編譯

1 編譯 例如在linux上進行gcc直接編譯,編譯出來的可執行檔案是在本機能夠執行 2 交叉編譯 下位機,如c51,stm32,若沒有足夠內存放編輯器,需要上位機進行跨機編譯來生成可執行檔案的,就是交叉編譯。需要交叉編譯的原因 由於本人嘗試的是樹莓派的交叉編譯,所以使用的工具是 gcc linar...

樹莓派之交叉編譯

1 為什麼要使用交叉編譯 交叉編譯工具較快開發的速度。樹莓派中已經安裝了gcc工具鏈,可在樹莓派中直接編譯源 生成可執行檔案。於此同時,pc機上也可使用gcc工具鏈生成可執行 但是和樹莓派上的gcc工具不同,pc機上的gcc工具生成intel或amd晶元上可執行的 但樹莓派卻是arm系列的晶元,顯然...

樹莓派核心模組交叉編譯

一 獲得arm gcc 交叉編譯器 安裝該編譯器,把編譯器路徑加入到環境變數中 gedit bashrc在最後一行新增 export path path your dir tools master arm bcm2708 arm bcm2708hardfp linux gnueabi bin 然後終...