zoukankan      html  css  js  c++  java
  • iMX6 yocto平台QT交叉编译环境搭建

    转:https://blog.csdn.net/morixinguan/article/details/79351909

    . /opt/fsl-imx-fb/4.9.11-1.0.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

    /opt/fsl-imx-fb/4.9.11-1.0.0/sysroots/x86_64-pokysdk-linux/environment-setup.d/qt5.sh

    /home/ubuntu/Qt5.8.0/Tools/QtCreator/bin/qtcreator.sh

    qt-opensource-linux-x64-5.8.0.run

    1、安装ubuntu上必备的库文件:

    如果无法安装请依次执行以下两个命令:

    apt-get upgrade

    apt-get update

    再安装以上的库文件。

    2、搭建JDK开发环境

    下载jdk1.6.0_45,然后安装jdk相关的库文件以及设置环境变量

    3、安装yocto交叉编译工具以及QT开发环境可参考:

    http://blog.csdn.net/lu_embedded/article/details/56102831

    主机环境:Ubuntu 12.04, 64位 。 
    交叉编译工具:Poky 1.5.3 交叉编译工具链及相关工具

    1、安装交叉编译工具

      将 poky 交叉编译工具压缩包解压到 /opt 目录。

    1.  
      $ sudo cp fsl-imx-x11-Yocto_1.5.3.tar.bz2 /opt
    2.  
      $ cd /opt
    3.  
      $ sudo tar jxvf fsl-imx-x11-Yocto_1.5.3.tar.bz2

      用 ls 命令查看一下。

    1.  
      $ ls -1 /opt/poky/1.5.3/
    2.  
       
    3.  
      environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
    4.  
      site-config-cortexa9hf-vfp-neon-poky-linux-gnueabi
    5.  
      sysroots
    6.  
      version-cortexa9hf-vfp-neon-poky-linux-gnueabi

      为交叉编译工具指定用户或组,XXX 是你的 ubuntu 用户的名字。

    $ sudo chown -R XXX:XXX /opt/poky

    2、安装 Qt Creator

      我这里下载到的是 qt-creator-opensource-linux-x86_64-3.2.1.run,安装过程如下。 
      同样,拷贝到 /opt 目录下,直接运行即可进入安装界面。

    1.  
      $ sudo cp qt-creator-opensource-linux-x86_64-3.2.1.run /opt
    2.  
      $ cd /opt
    3.  
      $ ./qt-creator-opensource-linux-x86_64-3.2.1.run
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    3、配置 Qt creator 的运行环境

      修改 /opt/qtcreator-3.2.1/bin/qtcreator.sh,在文件的第一行加入一段:

    . /opt/poky/1.5.3/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
    这里写图片描述

      environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi 的内容如下。

    1.  
      export PATH=/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin:/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi:$PATH
    2.  
      export PKG_CONFIG_SYSROOT_DIR=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi
    3.  
      export PKG_CONFIG_PATH=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/pkgconfig
    4.  
      export CONFIG_SITE=/opt/poky/1.5.3/site-config-cortexa9hf-vfp-neon-poky-linux-gnueabi
    5.  
      export CC="arm-poky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi"
    6.  
      export CXX="arm-poky-linux-gnueabi-g++ -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi"
    7.  
      export CPP="arm-poky-linux-gnueabi-gcc -E -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi"
    8.  
      export AS="arm-poky-linux-gnueabi-as "
    9.  
      export LD="arm-poky-linux-gnueabi-ld --sysroot=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi"
    10.  
      export GDB=arm-poky-linux-gnueabi-gdb
    11.  
      export STRIP=arm-poky-linux-gnueabi-strip
    12.  
      export RANLIB=arm-poky-linux-gnueabi-ranlib
    13.  
      export OBJCOPY=arm-poky-linux-gnueabi-objcopy
    14.  
      export OBJDUMP=arm-poky-linux-gnueabi-objdump
    15.  
      export AR=arm-poky-linux-gnueabi-ar
    16.  
      export NM=arm-poky-linux-gnueabi-nm
    17.  
      export M4=m4
    18.  
      export TARGET_PREFIX=arm-poky-linux-gnueabi-
    19.  
      export CONFIGURE_FLAGS="--target=arm-poky-linux-gnueabi --host=arm-poky-linux-gnueabi --build=x86_64-linux --with-libtool-sysroot=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi"
    20.  
      export CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types"
    21.  
      export CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fpermissive"
    22.  
      export LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
    23.  
      export CPPFLAGS=""
    24.  
      export OECORE_NATIVE_SYSROOT="/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux"
    25.  
      export OECORE_TARGET_SYSROOT="/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi"
    26.  
      export OECORE_ACLOCAL_OPTS="-I /opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/share/aclocal"
    27.  
      export OECORE_DISTRO_VERSION="1.5.3"
    28.  
      export OECORE_SDK_VERSION="1.5.3"
    29.  
      export PYTHONHOME=/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr
    30.  
      export ARCH=arm
    31.  
      export CROSS_COMPILE=arm-poky-linux-gnueabi-
    32.  
      export OE_QMAKE_CFLAGS="$CFLAGS"
    33.  
      export OE_QMAKE_CXXFLAGS="$CXXFLAGS"
    34.  
      export OE_QMAKE_LDFLAGS="$LDFLAGS"
    35.  
      export OE_QMAKE_CC=$CC
    36.  
      export OE_QMAKE_CXX=$CXX
    37.  
      export OE_QMAKE_LINK=$CXX
    38.  
      export OE_QMAKE_AR=$AR
    39.  
      export OE_QMAKE_LIBDIR_QT=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi//usr/lib
    40.  
      export OE_QMAKE_INCDIR_QT=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi//usr/include/qt4
    41.  
      export OE_QMAKE_MOC=/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/moc4
    42.  
      export OE_QMAKE_UIC=/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/uic4
    43.  
      export OE_QMAKE_UIC3=/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/uic34
    44.  
      export OE_QMAKE_RCC=/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/rcc4
    45.  
      export OE_QMAKE_QDBUSCPP2XML=/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/qdbuscpp2xml4
    46.  
      export OE_QMAKE_QDBUSXML2CPP=/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/qdbusxml2cpp4
    47.  
      export OE_QMAKE_QT_CONFIG=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi//usr/share/qt4/mkspecs/qconfig.pri
    48.  
      export QMAKESPEC=/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi//usr/share/qt4/mkspecs/linux-g++
    49.  
      export QT_CONF_PATH=/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux//etc/qt.conf

    4、配置 Qt creator

    4.1 运行 QT creator

      进入到 /opt/qtcreator-3.2.1/bin 目录,执行命令 $ ./ qtcreator.sh,运行 Qt creator。

    这里写图片描述

      然后,在 Qt 运行界面下,菜单栏点击 “Tools –> Options –> Build&Run”,进行相关配置。

    这里写图片描述

    4.2 设置 “Compiler”

      添加一个“ Manual” ,点击 Add –> GCC ,添加一个 GCC。

    这里写图片描述

    点击 Browser 选择 Compiler path 为:/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++,然后点击 apply。

    4.3 设置 “QT Versions”

      添加一个“ Manual” ,点击 Add ,点击 Browser,选择 qmake location 为:/opt/poky/1.5.3/sysroots/x86_64-pokysdk-linux/usr/bin/qmake,然后点击 apply。

    这里写图片描述

    4.4 设置“ Kit”

      添加一个“ Manual” ,点击 Add,点击 Browser,选择 Sysroot 为:/opt/poky/1.5.3/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi。点击 Compiler,选择先去配置好的 GCC。 
    然后点击 apply。

    这里写图片描述

      最后点击 OK 退出。 
      至此,i.MX 平台的 Qt 开发环境搭建完毕,接下来就可以在此环境上面进行 Qt 的应用开发了!

  • 相关阅读:
    为什么用strlcpy取代strncpy
    linux系统调用和库函数调用的区别
    VC、PE和天使投资是什么意思?有什么区别?
    AWS使用心得:当初我曾错过的那些宝贵经验
    bzoj 2208: [Jsoi2010]连通数
    android学习笔记(5)Activity生命周期学习
    Nginx 进程间通信
    手写一个节点大小平衡树(SBT)模板,留着用
    JavaFX学习之道:JavaFX之TableView
    Docker 命令行和后台參数
  • 原文地址:https://www.cnblogs.com/newjiang/p/9282496.html
Copyright © 2011-2022 走看看