原来看不到图啊,不好意思啊,QQ空间
http://user.qzone.qq.com/151243514购买PSP已经有一段时间了,作为一个程序员和游戏迷,一直想为自己的游戏机编制应用程序。这个想法还是当年痴迷于Dreamcast的时候,可是很无奈,由于机器连跑Dreamcast模拟器的基本配置都没有达到,最终也就没能成功。
进入正题。在Windows上搭建交叉编译环境都需要GNU环境,可以通过Cygwin(这是一个在Windows上运行的UNIX模拟环境)下载最新的Toolchain(这是一个能在A平台上编译出B平台能运行的程序的一系列工具)妆Ρπ编译出PSPSDK环境;或者下载已经编译好的开发工具比如devkitPro(它的实现方式其实和通过Cygwin也是一样的,不同的是它的GNU环境是msys,并且已经搭建好PSPSDK环境了)。我推荐使用Cygwin,虽然麻烦一点但是它能保证得到最新的PSPSDK。
首先下载并运行Cygwin.exe(
http://www.cygwin.com/setup.exe)。注意有标注的地方,其余采用默认值就可以。
这里如果没有下载到可用站点列表,你可以自己添加一个,比如(
ftp://ftp.ntu.edu.tw/cygwin)。
到这里我们要选择所需要安装的包。要正确的运行psptoolchain的脚本,必须确保安装以下工具:autoconf,automake,bison,flex,gcc,make,ncurses,patch,subversion,texinfo,wget。其中除了ncurses,patch,texinfo,wget其它都位于Devel中。
为了方便,可以直接点击Devel的Default,让它变成Install,全部安装。
在Libs中选择ncurses
在Utils中选择patch
在Text中选择texinfo
在Web中选择wget
选择完成后就等待下载和安装了
安装完成后运行Cygwin
然后在这里(
http://ps2dev.org/psp/Tools/Toolchain)获取psptoolchain,解压放到C:\cygwin目录下,进入psptoolchain运行toolchain-sudo.sh。
下面就是漫长的等待了,建议你们和我一样睡觉去吧~
大家早上好,下面继续。我发现在执行脚本的时候出错了。
“previous declaration”这种错误是由于嵌套引用了同一个头文件,或者是同一个函数前后的定义不一致引起的。
找到libcglue.c,它位于C:\cygwin\psptoolchain\build\pspsdk\src\libc。
找到time.h,它位于C:\cygwin\usr\local\pspdev\psp\include\sys。
两处的定义不一致,将libcglue.c中的void改为struct timezone。
当然我们不能再重头执行toolchain-sudo.sh了,这样太慢了。所以观察一下toolchain-sudo.sh和toolchain.sh这两个脚本文件。
我们进入/psptoolchain/build目录,首先导入两个编译必须的环境变量:
export PSPDEV=/usr/local/pspdev
export PATH=$PATH:$PSPDEV/bin,然后执行头先出错的006-pspsdk-stage2.sh。
完成后执行007-gdb-6.4.sh,这都需要很长的时间,需要点耐性。
好了,终于完成了,至于008-insight-6.4.sh就不用运行了。
退出Cygwin后重新进入你会发现提示找不到psp-gcc这是环境变量的原因,我们可冶ΡΥ一个脚本如下(附件):
#!/bin/bash
cd /usr/local/pspdev/psp/sdk;
export PSPDEV=/usr/local/pspdev;
export PATH=$PATH:$PSPDEV/bin; 把它另存为start.sh,放在C:\cygwin目录下。由于DOS格式和UNIX格式的区别,会导致脚本无法执行,可以用UltraEdit将它转变为UNIX格式。运行Cygwin后首先就执行该脚本:
source /start.sh
到这里PSPSDK环境就搭建完成了。
我打算写一个系列的教程,伴随着我的学习我会把学习的经验心得都发出来。直Ρδ的希望能帮助到和我有相着同兴趣的朋友。如果您对这篇教程有任何疑问、建议或者意见都希望能告诉我。
欢迎转载,并注明出处。
[ 此帖被fujingdcn在2009-01-22 22:19重新编辑 ]