当前位置:文档之家› ubuntu10.10下嵌入式QT开发环境搭建手记

ubuntu10.10下嵌入式QT开发环境搭建手记

【前言:由于我也是第一次搭建这个环境,整个所用时间不止一周,以及以前用java觉得还要配置环境变量,好麻烦,但那不过是几分钟的事,后来手动配置php,最快半天,一般我都要用一天的时间,个人比较笨;现在配置个嵌入式qt环境的时间不止一周的时间,真的是整个人都被整疯了,而且到此刻,我还不确定我的环境是否已经配置的完全正确,以下是一些环境搭建过程中碰到的问题,稍微整理了一下,建议在配环境的时候,多看几篇比较完整的环境搭建的文章,准备好前期工作(很多与编译有关的软件包提前装好),对比着做,然后出现错误了再上百度或谷歌去找答案,不要急,慢慢来,一周时间不算很长(经常错了从头再来)】首先,去QT的官网(/downloads)下载文件:直接下载Qt SDK for Linux/X11 32-bit** (422 MB)(这样比较简便,虽然可能占的空间要大一点)2,第二步就是安装刚刚下载的二进制文件:chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin./qt-sdk-linux-x86-opensource-2010.05.1.bin(这一步需要注意已经安装了gcc,g++,并且版本足够高,因为我一开始在red hat9的系统里装完之后,发现red hat自带的gcc版本太低,导致了很多麻烦,最终也没有解决好)3 下载coss tools包:/crosstool/crosstool-0.43.tar.gz4。

安装cross toolsmkdir ~/downloads 在用户主目录下建立一个下载文件夹,之后安装过程中下载的包都会自动放到这个文件夹下sudo apt-get install bisonsudo apt-get install flex以下4步是必须的,gcc的版本既不能太高也不能太低,只能是3.4;因为要用这个版本来编译内核。

sudo apt-get install gcc-3.4cd /usr/binsudo ln -s gcc-3.4 gccsudo rm gcc正式安装sudo mkdir /opt/crosstoolsudo chown 当前登录的用户名 /opt/crosstooltar -zxvf crosstool-0.43.tar.gzcd crosstool-0.43vi demo-arm.sh注释掉#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest在其后,加上eval `cat arm.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest注意:cat arm.dat gcc-4.1.1-glibc-2.3.2.dat而不是默认的gcc-4.1.1-glibc-2.3.6-tls.dat修改linux内核版本,linux内核可以自己选择,我的linux内核是linux-2.6.24(前面下载的那个) lingd@ubuntu:~/downloads/crosstool-0.43$ vi gcc-4.1.1-glibc-2.3.2.datBINUTILS_DIR=binutils-2.16.1GCC_CORE_DIR=gcc-3.3.6GCC_DIR=gcc-4.1.1GLIBC_DIR=glibc-2.3.2LINUX_DIR=linux-2.6.28LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2GDB_DIR=gdb-6.5修改交叉编译工具前缀vi arm.datKERNELCONFIG=`pwd`/arm.configTARGET=arm-linux(该名称为目标名称,我是觉得默认(arm-unknow-linux-gnu)的太长所以修改了,修改了后要注意了相关目录的权限)TARGET_CFLAGS="-O"执行下一个命令,系统将开始编译,并下载下面的包:binutils-2.16.1gcc-3.3.6gcc-4.1.1glibc-2.3.2linux-2.6.24linux-libc-headers-2.6.12.0glibc-linuxthreads-2.3.2gdb-6.5这个工程很长需要n小时的时间来可以ls一下看看里面的文件,里面有一些脚本文件,具体功能可以到/crosstool 上查看FAQ./demo-arm.sh (会执行很漫长)执行完后,最后一行提示:Done!执行完毕,修改环境变量安装完成后,默认的安装目录就是开始创建的那个/opt/crosstools/1.添加环境变量vi ~/.bashrc在最后添加如下if [ -d /opt/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux ]; thenPATH=/opt/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux/bin:$PATHfi就是把安装的工具bin目录添加到PATH变量中。

保存2.source ~/.bashrc,使环境变量生效$ source ~/.bashrc3.重启终端。

输入arm后,连续按两下table键,可以看到arm-linux-gcc-4.1.1,说明已经安装成功$ armarm2hpdl arm-linux-gcc arm-linux-objdumparm-linux-addr2line arm-linux-gcc-4.1.1 arm-linux-ranlibarm-linux-ar arm-linux-gccbug arm-linux-readelfarm-linux-as arm-linux-gcov arm-linux-sizearm-linux-c++ arm-linux-gprof arm-linux-stringsarm-linux-c++filt arm-linux-ld arm-linux-striparm-linux-cpp arm-linux-nmarm-linux-g++ arm-linux-objcopy$ arm=================================================================可能出现的问题:1. crosstool在ubuntu下运行提示 getandpatch.sh: 1: patch: not found1.执行apt-get update2.apt-get install patch2.gcc 版本太低,或者太高都不行,我的ubuntu是10.10,gcc版本4.4.6;需要再安装一个3.4;执行命令的时候可能找不到软件包,需要到软件中心把所有的软件源(9.04;第三方)都勾选上。

=================================================================现在开始搭建嵌入式QT环境;首先从官网下载QT的嵌入式版,注意官网上的嵌入式版和linux版都是199M,其实他们在官网上的位置不一样,Qt libraries 4.7.0 for embedded Linux (199 MB)/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gzQt libraries 4.7.0 for Linux/X11(199 MB)/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz其实下载下来是一样(看他们的下载路径都是一样的)的,。

下载下来的文件名为:qt-everywhere-opensource-src-4.7.0.tar.gz解压tar zxvf qt-everywhere-opensource-src-4.7.0.tar.gz把解压后的文件再复制两份(一共三份),分别取名为pc; x86; arm;然后开始分别编译:1.编译PC, cd pc./configuremake这一步可能出错:1此完整出错信息是在./configure阶段Basic XLib functionality test failed!You might need to modify the include and library search paths by editingQMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in/home/zhu/Qt/qt-x11-opensource-src-4.5.2/mkspecs/linux-g++进config.test/x11/xlib 执行make命令,看出错信息g++ -Wl,-O1 -o xlib xlib.o -L/usr/X11R6/lib -lXext -lX11 -lm/usr/bin/ld: cannot find -lXext可以看到,g++在/usr/X11R6/lib下,找不到libXext.so其原因就在于需要安装libX11的开发包,根据自己的系统特点,安装libX11-dev libXext-dev libXtst-dev问题解决!可能出错:2cc1: error: unrecognized command line option "-fvisibility=hidden"make: *** [sub-corelib-make_default-ordered] 错误 2出错原因是gcc版本太低,不支持-fvisibility=hidden选项,因为一开始的时候我们把gcc改成了3.4版本,现在要(利用备份)把它改回来。

然后,重新编译make.。

可能出错3:/usr/bin/ld: cannot find -lXrender说明还少一个包:安装 libxrender-devsudo apt-get install cutecomsudo apt-get install autoconf automake libtool截至到现在,最后一次make没有出错,但有不错warning,不管它sudo make install2. 编译嵌入式x86版:进入x86目录,设置其以QVFB作为显示输出# sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0 -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb# sudo make# sudo make install安装过程比较长,没有碰到过错误。

相关主题