ubuntu下QT交叉編譯環境搭建

以QT5.1.0爲例,講解配置arm版的qt開發環境。

1、 準備工作

1、 目標機的根文件系統:target-JV-rootfs-Ver0.600.1.00_DEVELOP.tar.bz2

2、 交叉編譯工具鏈:arm-imx6x-linux-gcc.tar.gz

3、 QT5.1.0源碼包:qt-everywhere-opensource-src-5.1.0.tar.gz

4、 一臺Linux系統的主機:當前Linux X86 Host爲ubuntu16.1

2、 安裝

1. 目標機的根文件系統

將根文件系統解壓到home目錄下:/home/JV_rootfs_0.600.100/

2. 交叉編譯器

將交叉編譯器解壓到opt目錄下:/opt/arm-imx6x-linux-gcc/

將交叉編譯器路徑配置到系統環境中,/etc/profile

export PATH=/opt/arm-imx6x-linux-gcc/bin/:$PATH

3. QT5.1.0源碼包

解壓到/home/user/XXX目錄下,/home/user/XXX/qt-everywhere-opensource-src-5.1.0

4. 在/usr下創建Qt5.1.0安裝目錄:/usr/my_qt_lib/qt5-imx6

5. 修改qt5.1.0目錄下的qmake.conf,如下:

#

# qmake configuration for building with arm-linux-gnueabi-g++

#

 

MAKEFILE_GENERATOR      = UNIX

CONFIG                 += incremental gdb_dwarf_index

QMAKE_INCREMENTAL_STYLE = sublib

 

include(../common/linux.conf)

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

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

 

# modifications to g++.conf

QMAKE_CC                = arm-unknown-linux-gnueabi-gcc

QMAKE_CXX               = arm-unknown-linux-gnueabi-g++

QMAKE_LINK              = arm-unknown-linux-gnueabi-g++

QMAKE_LINK_SHLIB        = arm-unknown-linux-gnueabi-g++

 

# modifications to linux.conf

QMAKE_AR                = arm-unknown-linux-gnueabi-ar cqs

QMAKE_OBJCOPY           = arm-unknown-linux-gnueabi-objcopy

QMAKE_STRIP             = arm-unknown-linux-gnueabi-strip

 

QMAKE_INCDIR                = /home/JV_rootfs_0.600.100/usr/include

QMAKE_INCDIR                +=/opt/arm-imx6x-linux-gcc/arm-unknown-linux-gnueabi

QMAKE_INCDIR                +=/opt/arm-imx6x-linux-gcc/arm-unknown-linux-gnueabi/include

QMAKE_LIBDIR                = /home/JV_rootfs_0.600.100/usr/lib

QMAKE_LIBDIR                +=/opt/arm-imx6x-linux-gcc/arm-unknown-linux-gnueabi

QMAKE_LIBDIR                +=/opt/arm-imx6x-linux-gcc/arm-unknown-linux-gnueabi/lib

 

QMAKE_LIBS_OPENGL_ES1       += -lGLESv1_CM -lEGL -lGAL

QMAKE_LIBS_OPENGL_ES1CL     += -lGLES_CL -lEGL -lGAL

QMAKE_LIBS_EGL              += -lEGL

QMAKE_LIBS_OPENGL_ES2       += -lGLESv2 -lEGL -lGAL

QMAKE_LIBS_OPENVG           += -lOpenVG -lEGL -lGAL

 

IMX6_CFLAGS             = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1

IMX6_CFLAGS_RELEASE     = -O2 $$IMX6_CFLAGS

QMAKE_CFLAGS_RELEASE   += $$IMX6_CFLAGS_RELEASE

QMAKE_CXXFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE

QMAKE_CFLAGS_DEBUG     += $$IMX6_CFLAGS

QMAKE_CXXFLAGS_DEBUG   += $$IMX6_CFLAGS

 

load(qt_config)

5、 在路徑/home/user/XXX/qt-everywhere-opensource-src-5.1.0下執行以下語句:

./configure -v -opensource -confirm-license -skip webkit -no-pch -no-xcb -qpa linuxfb -xplatform linux-iMX6-g++ -no-opengl -opengl es2 -egl -eglfs -linuxfb -make libs  -compile-examples -make demo -device-option CROSS_COMPILE=/opt/arm-imx6x-linux-gcc/bin/arm-unknown-linux-gnueabi- -sysroot /home/JV-rootfs-Ver0.900.0.00_DEVELOP_1wk -prefix /usr/my_qt_lib/JV-qt5.1.0-imx6

6.編譯成功,即可在/usr/my_qt_lib/qt5-imx6中,得到qmake等交叉編譯工具

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章