Chinaunix首页 | 论坛 | 博客
  • 博客访问: 80292
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-04 13:04
文章分类

全部博文(30)

文章存档

2017年(6)

2016年(24)

我的朋友

分类: LINUX

2016-11-04 13:14:52

原文地址:QT嵌入式环境搭建与移植 作者:

一、Qt4.6.3编译与移植PXA270

环境:虚拟机Fedora7(建议安装Vmware Tools,详细安装方法参照Vmware帮助文档),USB串口,超级终端。

软件准备:

1、用于 Linux/X11 32  Qt Creator 1.3.1 二进制软件包qt-creator-linux-x86-opensource-1.3.1.bin

2、用于嵌入式 Linux  Qt  4.6.3qt-everywhere-opensource-src-4.6.3.tar.gz

1.1 编译

 qt-everywhere-opensource-src-4.6.3.tar.gz 压缩包解压为3份,分别编译 PC ,嵌入式 x86  arm 三个版本。

root目录下建立tmp文件夹,将qt-everywhere-opensource-src-4.6.2.tar.gz直接解压后复制3,分别命名为pcx86arm

1.1.1编译 PC 

进入pc目录,执行如下操作:

#./configure

# gmake

# gmake install

安装过程比较长,没有碰到过错误。

1.1.2编译嵌入式x86

进入x86目录,执行如下操作:

# ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb

# gmake

# gmake install

安装过程比较长,没有碰到过错误。

编译安装PC版中的 qvfb

进入pc/tools/qvfb/目录,执行如下操作:

#make

编译完毕,将pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.6.3/bin目录。

1.1.3编译嵌入式arm版(需要 arm-linux-gcc 的支持)

1把编译器路径加入系统环境变量,运行命令:

#gedit /root/.bashrc

2、编辑/root/.bashrc文件,在最后一行加上 export PATH=/usr/local/arm/3.4.1/bin:/$PATH

3、配置

必须加上-prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm 参数, 不然安装后不在QtEmbedded-4.6.3-arm文件夹下,而是覆盖了QtEmbedded-4.6.3

# ./configure \

-prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm \ 

-opensource \

-confirm-license \

-release -shared \

-embedded arm \

-xplatform qws/linux-arm-g++ \

-depths 16,18,24 \

-fast \

-optimized-qmake \

-pch \

-qt-sql-sqlite \

-qt-libjpeg \

-qt-zlib \

-qt-libpng \

-qt-freetype \

-little-endian -host-little-endian \

-no-qt3support \

-no-libtiff -no-libmng \

-no-opengl \

-no-mmx -no-sse -no-sse2 \

-no-3dnow \

-no-openssl \

-no-webkit \

-no-qvfb \

-no-phonon \

-no-nis \

-no-opengl \

-no-cups \

-no-glib \

-no-xcursor -no-xfixes -no-xrandr -no-xrender \

-no-separate-debug-info \

-nomake examples -nomake tools -nomake docs \

 

4、如果放弃配置,则使用命令:# gmake confclean

编译:# gmake

安装:# gmake install

安装完成后,在/usr/local/Trolltech目录中有三个文件夹:Qt-4.6.3QtEmbedded-4.6.3QtEmbedded-4.6.3-arm

1.2移植

Fedora7  /usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib 中的所有文件复制到ARM /flash/qt/lib目录中;

       Fedora7  /usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin中的所有文件复制到ARM /flash/qt/bin目录中;

Fedora7  /usr/local/Trolltech/QtEmbedded-4.6.3-arm/include中的所有文件复制到ARM /flash/qt/include目录中;

Fedora7  /usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/fonts中的所有文件复制到ARM /flash/qt/fonts目录中;

 

二、Fedora7下搭建Qt CreatorARM开发环境  2.1安装Qt-creator-1.3.1

1、把下载的qt-creator-linux-x86-opensource-1.3.1.bin文件拷到一个目录(如/root/tmp目录)2、进入目录/root/tmp

设置qt-creator-linux-x86-opensource-1.3.1.bin文件为可执行

#chmod +x qt-creator-linux-x86-opensource-1.3.1.bin

3、安装:

# ./ qt-creator-linux-x86-opensource-1.3.1.bin

启动安装界面,默认Next即可。

2.2 Qt-creator开发环境的配置

1、启动Qt-creator

2、在Qt-creator菜单栏Tools--->Options打开Options窗口。

3、在Options界面左侧,点击Qt4--->Qt Versions右侧显示Qt Versions设置界面。

4、在Qt Versions界面中点击那个蓝色的大号图标

5、在下方Version Name,文本框内输入Qt的版本名,区分各个版本即可(如pc版取Qt4.6.3-pcx86版取QtE4.6.3-x86arm版取QtE4.6.3-arm)。

单击Qmake Location,右侧Browse按钮,在弹出的Select QMake Executable窗口中找到对应版本的qmake程序(按照我们前面安转的,

pc版路径:/usr/local/Trolltech/Qt-4.6.3/bin/qmake

x86版路径:/usr/local/Trolltech/QtEmbedded-4.6.3/ bin/qmake

arm版路径:/usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin/qmake),单击打开,

回到Qt Versions界面,单击Debugging Helper,右侧Rebuild按钮,等待片刻,看到Debugging Helper,后出现一个绿色的即可。

同理完成其他版本的添加。添加完毕,单击OK按钮关闭Options窗口。到此,Qt-creator配置完毕。

2.2 示例

usr/local/Trolltech/QtEmbedded-4.6.3/demos下复制books例程到root/tmp文件夹下。

启动Qt-creatorFile--->Open File or Project,打开root/tmp/books/books.pro

这里分两部分,首先编译x86下的,并运行在qvfb下,再编译arm下的,移到开发板下运行。

2.2.1 x86下的编译与调试

Qt-creator界面左侧点击Projects图标,打开工程设置界面,执行如下操作:

1、配置:

Edit Project Settings for Project books--->Build Settings--->Edit Build Configuration;单击Add,在下拉列表中选择Using Qt Version QtE4.6.3-x86弹出对话框单击Ok按钮,在

Edit Build Configuration;下会出现蓝色的Make QtE4.6.3-x86 Release active.字符,单击激活

QtE4.6.3-x86 Release

Run Settings--->Edit run configuration:右侧单击Show Details按钮,在打开的下拉列表中Arguments,文本框中添加参数-qws

设置完毕,点击Edit图标,回到编辑界面。

4、编译:

Build菜单下,先Clean Project books,然后Build Project books,在右下角Compile Output窗口能看到编译信息(按上面这样走来,到此编译不会出问题的)。

5、运行:

启动终端,# /usr/local/Trolltech/QtEmbedded-4.6.3/bin/qvfb -width 800 -height 480 &,启动Qvfb

6、回到Qt-creatorBuild--->Run,运行程序。

切换Qvfb窗口中,是不是看到Books运行的界面了。

7、调试:

Debug--->Start Debugging--->Start Debugging,即可启动调试(请保证books路径中没有中文名,即不要把books工程放在了某个含有中文字符的文件夹下,不然无法启动调试)。

此时感觉如果前面编译选项Edit Project Settings for Project books--->Build Settings--->Edit Build Configuration:选择Debug项,则调试启动速度比Release时的要快很多。

2.2.2 arm编译并移植

1、编译:

Projects设置界面下,选择Using Qt Version “QtE4.6.3-arm”项,余下参数不变,build

复制编译好的文件(也许还有images文件夹)到ARM的文件系统的某个目录下,直接把books文件夹复制过去。

2、运行及错误处理:

minicom下面,ps一下,找到qpe进程对应的PID,比如1234,然后通过kill 1234杀死Qtopia

进入books目录,执行./books –qws,此时就会出现前面讲到的relocation error: /usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so.4: symbol powf, version GLIBCXX_3.4 not defined in file libstdc++.so.6 with link time reference错误。

3、解决办法

进入主机/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/lib目录下找到libstdc++.so.6链接的文件libstdc++.so.6.0.8(通过右键属性---)基本,可以看到链接的文件),复制并重命名为libstdc++.so.6/opt/FriendlyARM/mini2440/root_qtopia/lib文件夹下,之前别忘了将该文件夹下的libstdc++.so.6移到其它地方或重命名,如libstdc++.so.6.old

 

然后再运行./books –qws,看问题是不是解决了!
阅读(1838) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~