1. 配置LCD
按参照 http://www.linuxfans.org/bbs/thread-182082-1-1.html
2. 配额网络
按参照我的上篇文章 http://www.linuxfans.org/bbs/thread-182384-1-1.html
mkdir /home/arm
cd /home/arm
3 下载qt-embedded-2.3.7.tar.gz,tmake-1.11.tar.gz
tar zxvf qt-embedded-2.3.7.tar.gz
tar zxvf tmake-1.11.tar.gz
mv qt-2.3.7 qt-embedded-target
mv tmake-1.11 tmake
tar zxvf tmake-1.11.tar.gz
mv qt-2.3.7 qt-embedded-target
mv tmake-1.11 tmake
设置环境变量
export TMAKEDIR=$PWD/tmake
export QTEDIR=$PWD/qt-embedded-target
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTEDIR=$PWD/qt-embedded-target
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
4.配置交叉编译环境
这里使用的是3.3.2
tar jxvf cross-3.3.2.tar.bz2
mkdir /usr/local/arm
mv 3.3.2 /usr/local/arm
export PATH=/usr/local/arm/3.3.2/bin:$PATH
mkdir /usr/local/arm
mv 3.3.2 /usr/local/arm
export PATH=/usr/local/arm/3.3.2/bin:$PATH
5. 开始编译
cd $QTEDIR
/configure -xplatform linux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
make
在编译一会后
会出现
/home/arm/qt-embedded-target/lib/libqte.so: undefined reference to `operator new[](unsigned int)'
/home/arm/qt-embedded-target/lib/libqte.so: undefined reference to `operator delete(void*)'
/home/arm/qt-embedded-target/lib/libqte.so: undefined reference to `__cxa_pure_virtual'
/home/arm/qt-embedded-target/lib/libqte.so: undefined reference to `operator delete[](void*)'
/home/arm/qt-embedded-target/lib/libqte.so: undefined reference to `operator new(unsigned int)'
collect2: ld returned 1 exit status
make[4]: *** [t1]
/home/arm/qt-embedded-target/lib/libqte.so: undefined reference to `operator delete(void*)'
/home/arm/qt-embedded-target/lib/libqte.so: undefined reference to `__cxa_pure_virtual'
/home/arm/qt-embedded-target/lib/libqte.so: undefined reference to `operator delete[](void*)'
/home/arm/qt-embedded-target/lib/libqte.so: undefined reference to `operator new(unsigned int)'
collect2: ld returned 1 exit status
make[4]: *** [t1]
没有关系 这个是连接测试文件时出现的错误,没有关系的 因为我们需要的动态库已经连接好了
这步完成后,我们会在/$QTEDIR/lib/目录下面看到libqte.so libqte.so.2 libqte.so.2.3 libqte.so.2.3.7 这四个文件,我们可以使用file 命令来查看这个库文件是否是我们需要的在开发板上跑的库。
file libqte.so.2.3.7
libqte.so.2.3.7: ELF 32-bit LSB shared object, ARM, version 1 (ARM), stripped
6编译示例程序
这里需要修改文件 $TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf
将其中“TMAKE_LINK= arm-linux-gcc”
“TMAKE_LINK_SHLIB= arm-linux-gcc”
修改为:“TMAKE_LINK= arm-linux-g++”
“TMAKE_LINK_SHLIB= arm-linux-g++”
cd $QTEDIR/examples/progressbar
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$TMAKEDIR/bin/:$PATH
make clean
tmake -o makefile progressbar.pro
make
file progressbar
progressbar: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$TMAKEDIR/bin/:$PATH
make clean
tmake -o makefile progressbar.pro
make
file progressbar
progressbar: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
7 为运行Skyeye准备环境
编辑 host上的nfs配置文件/etc/exports
/home/arm 10.0.0.*(ro,sync) #这里放的是我们解压qt-embedded-2.3.7.tar.gz时的目录
/home/lib 10.0.0.*(ro,sync) #这里放arm-linux-gcc的一些动态库
/home/lib 10.0.0.*(ro,sync) #这里放arm-linux-gcc的一些动态库
复制我们需要的动态库
mkdir /home/lib
cd /home/lib
cp -arf /usr/local/arm/3.3.2/arm-linux/lib/libgcc_s.s* .
cp -arf /usr/local/arm/3.3.2/arm-linux/lib/libstdc++.s* .
ln libstdc++.so.5.0.5 libstdc++.so.5 -s
cp -arf /usr/local/arm/3.3.2/lib/ld-2.3.2.so .
cp -arf /usr/local/arm/3.3.2/lib/ld-linux.so.2 .
cp -arf /usr/local/arm/3.3.2/lib/libm-2.3.2.so .
cp -arf /usr/local/arm/3.3.2/lib/libm.so .
cp -arf /usr/local/arm/3.3.2/lib/libm.so.6 .
cp -arf /usr/local/arm/3.3.2/lib/libc-2.3.2.so .
cp -arf /usr/local/arm/3.3.2/lib/libc.so.6 .
cd /home/lib
cp -arf /usr/local/arm/3.3.2/arm-linux/lib/libgcc_s.s* .
cp -arf /usr/local/arm/3.3.2/arm-linux/lib/libstdc++.s* .
ln libstdc++.so.5.0.5 libstdc++.so.5 -s
cp -arf /usr/local/arm/3.3.2/lib/ld-2.3.2.so .
cp -arf /usr/local/arm/3.3.2/lib/ld-linux.so.2 .
cp -arf /usr/local/arm/3.3.2/lib/libm-2.3.2.so .
cp -arf /usr/local/arm/3.3.2/lib/libm.so .
cp -arf /usr/local/arm/3.3.2/lib/libm.so.6 .
cp -arf /usr/local/arm/3.3.2/lib/libc-2.3.2.so .
cp -arf /usr/local/arm/3.3.2/lib/libc.so.6 .
启动skyeye -e vmlinux
mkdir mnt
mount -o nolock 10.0.0.1:/home/lib /lib
mount -o nolock 10.0.0.1:/home/arm /mnt
cd /mnt
export QTEDIR=$PWD/qt-embedded-target
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:/lib:$LD_LIBRARY_PATH
/mnt/qt-embedded-target/examples/progressbar/progressbar -qws
mount -o nolock 10.0.0.1:/home/lib /lib
mount -o nolock 10.0.0.1:/home/arm /mnt
cd /mnt
export QTEDIR=$PWD/qt-embedded-target
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:/lib:$LD_LIBRARY_PATH
/mnt/qt-embedded-target/examples/progressbar/progressbar -qws
触摸屏还没有弄好
谁有方面的资料啊
还有 模拟起来超级的慢