1. 程式人生 > >交叉編譯Qt5.8

交叉編譯Qt5.8

arm平臺:BeagleBone Black

編譯平臺:ubuntu16.04

交叉編譯工具:arm-Linux-gnueabihf

設定arm-linux-gnueabihf路徑

  1. ~$ vim ~/.bashrc  

向檔案中加入如下一行

  1. export PATH=$PATH:~/gcc-linaro-4.9-arm-linux-gnueabihf/bin  

儲存並退出檔案,重新整理

  1. ~$ source ~/.bashrc  

配置並編譯qt

修改qt支援arm-linux-gnueabihf交叉編譯工具

  1. ~$ tar -xzf qt-everywhere-opensource-src-5.8.0.tar.gz   
  2. ~$ cd qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs  
  3. ~/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs$ cp -r linux-arm-gnueabi-g++/ linux-arm-gnueabihf-g++  
  4. ~/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/linux-arm-gnueabihf-g++$ vim qmake.conf  


把檔案中的arm-linux-gnueabi替換為arm-linux-gnueabihf,如下內容

  1. #  
  2. # qmake configuration for building with arm-linux-gnueabihf-g++  
  3. #  
  4. MAKEFILE_GENERATOR      = UNIX  
  5. CONFIG                 += incremental  
  6. QMAKE_INCREMENTAL_STYLE = sublib  
  7. include(../common/linux.conf)  
  8. include(../common/gcc-base-unix.conf)  
  9. include(../common/g++-unix.conf)  
  10. # modifications to g++.conf  
  11. QMAKE_CC                = arm-linux-gnueabihf-gcc  
  12. QMAKE_CXX               = arm-linux-gnueabihf-g++  
  13. QMAKE_LINK              = arm-linux-gnueabihf-g++  
  14. QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++  
  15. # modifications to linux.conf  
  16. QMAKE_AR                = arm-linux-gnueabihf-ar cqs  
  17. QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy  
  18. QMAKE_NM                = arm-linux-gnueabihf-nm -P  
  19. QMAKE_STRIP             = arm-linux-gnueabihf-strip  
  20. load(qt_config)  

配置qt

  1. ~/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/linux-arm-gnueabihf-g++$ cd ~/qt-everywhere-opensource-src-5.8.0  
  2. ~/qt-everywhere-opensource-src-5.8.0$ ./configure -prefix $PWD/qtbase -opensource -xplatform linux-arm-gnueabihf-g++ -no-opengl -nomake examples  

編譯qt

  1. ~/qt-everywhere-opensource-src-5.8.0$ make -j4  

編譯完成後在Qt Creator內設定qmake路徑,就可以使用了