以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等交叉編譯工具