分类: LINUX
2008-12-15 10:01:16
交叉编译Hello World
我用的是交叉编译qtopia-free-
我的开发环境:
【硬件】:CPU:P4 2.4 内存:
【操作系统】:RedHat 9 完全安装。
【交叉编译器】:cross-2.95.3
【用户】:root
首先,设置环境变量,这个很重要,在windows下可以没有或者很少有环境变量的概念,但是在linux下,环境变量有即使是稍微一点点的差别,最后的结果可能就会有很大的差别,之前编译一下软件和自己开发QT程序的过程中,经常会碰到make出错,不能成功的情况,很多make出错的情况都可能是因为环境变量没有设置好。下面就说明本例中需要配置的环境变量。
新打开一个终端,在新打开的终端中执行如下操作:
#export TMAKEDIR=/root/yizhi/qtopia-free-
#export TMAKEPATH=/$TMAKEDIR/lib/qws/linux-arm-g++
#export PATH=$TMAKEDIR/bin:$PATH
#export QTEDIR=/root/yizhi/qtopia-free-
#cd $QTEDIR
#export QTDIR=$QTEDIR
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#export PATH=/usr/local/arm/2.93.3/bin:$PATH
好了,环境变量现在全部设置好了,进入hello的目录:
#cd $QTEDIR/examples/hello
进入hello的目录后,使用progen工具生成hello.pro文件:
#progen –t app.t –o hello.pro
生成hello.pro文件后,使用tmake工具交叉编译,生成Makefile文件:
#tmake –o Makefile hello.pro
如果tmake这步不报错,下面执行make命令就可以生成可以在开发板上跑起来的二进制文件了,如果tmake出错,请详细检查环境变量是否正确。最后执行make命令,生成二进制文件:
#make
好了,make结束后,就可以在hello的目录下看到一个名为hello的二进制文件了,把这个二进制文件copy到开发板上,比如开发板的/tmp目录下,执行chmod后,执行./hello就可以看到hello world了。
在minicom或者超级终端中开发板的目录下执行:
#chmod 777 hello
#./hello
就可以运行hello world了。