近日闲来无事(主要是工作没了)于是想到可以做做PSP的开发,于是说做就做。第一步当然是先建立开发环境了,先到Google上搜索了一番,发现PSP的开发环境建立一般主要有两种:第一种是自己build PSP toolchain from scratch(前提是已有GNU的开发环境,比如Linux,Cygwin等);第二种是直接使用别人编译好的toolchain(比如devkitPro);凭着多年在Linux上开发经验本来想选第一种,可是想到会经常重装系统;而且看到forum里别人build一次大概至少需要十多个小时(下载+编译)。为了方便,决定还是选用第二种。
在
PSPChina
里已有人写出了
devkitPro安装步骤
,比较简单我就不再重复了。这里我想说的是因为经常使用
Cygwin
,所以就直接在
Cygwin
环境去编译
PSP SDK
里的
sample
,但是发现
psp-config
报告的
sdk
路径有问题,导致
make
命令找不到
sdk
的
common build.mak
;可是在
MinGW
的环境下是
OK
的。开始怀疑是
psp-config
的
bug
,所以自己写了个简单的
psp-config
来替换;可是到了编译期间
psp-gcc
找不到
sdk
的头文件,命令行明明是正确的编译器就是找不到。经过包含各种路径的测试,才恍然大悟原来
MinGW
与
Cygwin
表示盘符的方法不兼容。比如,表示
d
盘下的
d:/devkitPro/devkitPSP
/d/devkitPro/devkitPSP /* MinGW */
/cygdrive/d/devkitPro/devkitPSP /* Cygwin */
Cygwin
环境下每个盘符都是隶属于
/cygdrive,
而在
MinGW
就直接用
/+
盘符,
DevkitPro
附带的
PSP toolchain
当然也是用
MinGW
的盘符表示方法了,所以
DevkitPro
的
PSP toolchain
要搭配
MinGW
的环境。
最后,我简单看了一下
sdk
的
build.mak
发现里面没有用到什么
shell
命令,也就是说我只要简单替换
Cygwin
的
make
命令,就可以直接在
Cygwin
的环境下
build PSP
的
program
了。当然为了不影响
Cygwin
的其他
program
开发,于是做了个
alias
alias make='/cygdrive/d/devkitPro/msys/bin/make.exe'
只有在做
PSP
开发的时候启用这个
alias
,这样即使有嵌套的
Makefile
也没有问题。觉得麻烦的话干脆单独开一个
MinGW
的窗口专门用来做编译,其他的可以在
Cygwin
下完成。