MY-IMX6-EK140 Qt4.8.5移植

来自明远智睿的wiki
Admin讨论 | 贡献2016年10月18日 (二) 17:14的版本 (创建页面,内容为“ = 移植ARM版的Qt4.8 = == tslib移植 == === 编译tslib库 === 1 解压tslib unzip tslib-master<br> 2 进入tslib目录,指定交叉编译工具 export CC...”)

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

移植ARM版的Qt4.8

tslib移植

编译tslib库

1 解压tslib

unzip tslib-master
2 进入tslib目录,指定交叉编译工具

export CC=/home/myzr/6ul-tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-gcc-4.9.23
3 生成配置文件

./autogen.sh
4 配置

./configure --host=arm-linux-gnueabihf --prefix=/usr/local/tslib
5 编译

make
6 安装

sudo make install
会在/usr/local下生成tslib目录,安装完成
7 进入交叉编译工具的库的目录,把编译好的tslib的库复制到交叉编译工具的库的目录
cp /usr/local/tslib/lib/libts* ./ -a

移植Qt

编译Qt库

1 解压Qt源码

tar xvf qt-everywhere-opensource-src-4.8.5
2 进入Qt源码目录

vim mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
3 修改交叉编译工具

  # modifications to g++.conf
  QMAKE_CC = /home/myzr/6ul-tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-gcc-4.9.2 -lts
  QMAKE_CXX = /home/myzr/6ul-tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-g++ -lts
  QMAKE_LINK = /home/myzr/6ul-tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-g++ -lts
  QMAKE_LINK_SHLIB = /home/myzr/6ul-tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-g++ -lts

  # modifications to linux.conf
  QMAKE_AR = /home/myzr/6ul-tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-ar cqs
  QMAKE_OBJCOPY = /home/myzr/6ul-tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-objcopy
  QMAKE_STRIP = /home/myzr/6ul-tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-strip
  保存退出

4 vim mkspecs/common/linux.conf

在QMAKE_LIBS_THREAD = -lpthread 后面添加 -lts :
QMAKE_LIBS_THREAD = -lpthread -lts
保存退出
5 配置

./configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -little-endian -host-little-endian -no-opengl -no-openssl -nomake examples -nomake docs
6 编译

make
编译时间1-2小时
7 安装

sudo make install
安装完成,会在/usr/local目录下生成Trolltech目录。

编译tslib插件

1 在Qt源码目录

cd src/plugins/generic/tslib/
2 复制tslib头文件到当前目录

cp /usr/local/tslib/include/tslib.h ./
3 编译

make
4 安装

sudo make install
安装完成,会在/usr/local/Trolltech/QtEmbedded-4.8.5-arm/plugins/generic/目录下生成libqtslibplugin.so

开发板环境搭建

拷贝库

1 把/usr/local下的Trolltech 目录 复制到 开发板的 /usr/local目录下

2 把/usr/local 下的tslib 目录 复制到 开发板的 /usr/local 目录下

设置环境变量

1 vi /etc/profile

加入:
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_FBDEVICE=/dev/fb0

export LD_LIBRARY=/usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib
export QT_QWS_FONTDIR=/usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib/fonts
export QWS_MOUSE_PROTO=tslib:/dev/input/event1
保存退出
到此, 开发版的Qt运行环境就搭建好了。

Qt应用程序的编译

设置Qtcreator环境

1 到Qt官网下载Qt安装包: http://download.qt.io/archive/qt/5.5/5.5.0/

qt-opensource-linux-x86-5.5.0.run 是linux下32位的;
qt-opensource-linux-x64-5.5.0-2.run 是linux 下64位的。
根据需要下载。
2 下载完成后把安装包放到linux下,用鼠标双击运行,会弹出安装界面,根据自己需求安装。

3 安装完成后会得到一个Qt Creator(Community),在桌面可能看不到,可以在linux下搜索“Qt”,然后打开它;也可以在Qt安装目录下的Tools/QtCreator/bin/找到qtcreator,然后运行它,打开之后

  在菜单栏里Tools -> Options ;找到"Build & Run"。
  添加“Compilers”,“add”添加交叉编译工具,选择前面编译Qt源码的交叉编译工具。
  添加“Qt Versions”, “add”添加qmake,选择前面编译好的qmake(/usr/local/bin/qmake)。
  添加“Kits”,“add”添加一个Kit,自己命名,然后选择“Compiler”和“Qt Version”,这两个是选择上两步添加的“Compiler”和“Qt Version”。
  最后“OK”退出。

Qt应用程序创建

1 菜单栏: File->New File or Project。

2 Application -> Qt Widgets Application。

3 输入项目名字,选择创建路径,下一步。

4 kit的选择,选择2.4.1中添加的Kit;下一步。

5 输入类的名字,这里用默认,“Base class”选择QWidget,下一步。

6 Finish。 =

7 Forms下有个ui文件,双击打开它。

8 在左边栏里 Display Widgets 下有个 Label,用鼠标拖到设计界面上去,然后双击label,输入“hello world !”。

9 编译,点击左下角的锤子形状的按钮编译,编译完成会在创建目录生成可执行文件,把它放到开发板上就可以运行了。