查看完整版本: [教程]简述在Cygwin/BSD/MacOSX下建立PSP开发环境@2008-08-10

maxhoov 2005-8-6 14:30

[教程]简述在Cygwin/BSD/MacOSX下建立PSP开发环境@2008-08-10

[b]#不同颜色代表不同操作系统[/b]
通用,都适用的。
[color=Green]Cygwin(已经不用这个很长时间了,故叙述多以回忆及早期资料为主,如有错误或遗漏,欢迎指出,吾必改正)[/color]
[color=Blue]BSD(我用的是NetBSD 3.1。FreeBSD/OpenBSD/Linux用户可将本文作为参考,如有问题,我会尽我所能帮你解答)[/color]
[color=Magenta]MacOSX(MacOSX 10.4.8 on x86-PC/MacOSX 10.5.* on Intel-Mac,Leopard会有一些需要注意的地方,会特别标示出来)[/color]

[b]#准备工作[/b]
[color=Green]1.下载Cygwin的安装程序([url]http://www.cygwin.com/setup.exe[/url])到本地。
2.双击安装,选Next,跳过第一页。
3.选Install from Internet(downloaded files will be kept for future re-use)。
4.然后就是选择下载服务器了(按地区划分,建议选择离自己地理位置近的),等待读取下载列表。
5.读取完下载列表之后会让你选择要下载哪些软件包,每个软件包都有4种安装类型(Install - 安装,Reinstall - 重新安装,Uninstall - 卸载/不装,Default - 默认),用鼠标点软件包的名称后面的那个图标就能切换,至少要装gcc,gmake,gpatch,wget,svn,automake,autoconf,autogen,m4,perl什么的(要注意依赖关系,这个的确很烦),Games,GNOME,KDE,Mail,X11什么的就不用装了,选Uninstall(不安装)就行。
6.然后就是静静的等待下载和安装,时间视网络情况而定。
7.安装接近尾声时,会有一些脚本处理,大多时候窗口会没有响应,不要强制关闭它,耐心等它忙完。
8.安装完毕,可以在开始->程序菜单中找到它。

* 可以参考一下《如何安装Cygwin》繁体中文文献([url]http://www.xbook.com.tw/service/work/Setup_Cygwin.doc[/url]),如果链接失效,可以在本贴的下面找到论坛下载链接.[/color]

[color=Blue]1.安装NetBSD,网上资料众多,这里不再敖述。推荐使用FreeBSD,硬件驱动较多,中文社区也比较成熟,资料丰富。
2.下载最新的pkgsrc(应该是2008Q2了),解压到/usr目录下(tar xzvpf $pkgsrc的文件名 -C /usr)。
3.在安装必备软件包之前,建议安装pkgfind(pkgtools/pkgfind),对于查找软件包在pkgsrc中的位置很有帮助(pkgfind $软件包名称)。安装wget(net/wget),patch(devel/patch),gmake(devel/gmake),automake(devel/automake),autoconf(devel/autoconf),autogen(devel/autogen),svn(devel/subversion-base),安装的方法很简单,进入对应的目录,输入make install clean clean-depends回车即可,前提是要已连接上互连网。[/color]

[color=Magenta]1.Mac用户可以跳过这一步。安装MacOSX 10.4.*/10.5.* for x86-PC,同样资料众多,不再敖述,不过PC装MacOSX for x86-PC,硬件兼容性还是个很大的问题,稳定性也没有十足的保证,建议先在网上查一些相关资料。
2.下载并安装最新版Xcode([url]http://developer.apple.com/tools/download/[/url]),确保gcc(>=4.0.1), gmake(>=3.80), automake(>=1.80), autoconf(>=2.59)等软件都已安装。注:Leopard需要Xcode 3.0。
3.下载并安装最新版svn([url]http://metissian.com/projects/macosx/subversion/[/url]),安装后将
[quote]/usr/local/bin[/quote]
添加到用户目录(Users/$你的用户名)下的.bash_profile里,没有就创建一个。
4.Leopard用户请跳至5。下载并安装最新版fink([url]http://fink.sourceforge.net/[/url]),安装后打开终端,执行. /sw/bin/pathsetup.sh,然后将
[quote]. /sw/bin/init.sh[/quote]
添加到用户目录下的.bash_profile中。
5.MacOSX 10.4.*用户请跳过这一步。下载fink的bootstrap版([url]http://downloads.sourceforge.net/fink/fink-0.27.8.tar.gz[/url]), 解压后开一个终端并进入该目录,执行sudo ./bootstrap,如果英文不是很熟,或者对意思拿捏不准,可以一路回车用默认值。安装成功后会提示"You should now have a working Fink installation in ..."。然后再执行. /sw/bin/pathsetup.sh设置环境就行了。
6.退出并重新开启一个终端,[quote]autoconf, automake, bison, flex, gcc, libusb-dev, make, ncurses, patch, readline, subversion, texinfo, wget[/quote]在上述这些所需的工具里面找出缺少的,然后通过fink安装好。
一般来说,上述步骤如果都正确执行了的话,gcc/patch/make等工具就应该都有了(后面命令中的参数默认以这种情况为准,缺少或已有的,可以自行变更install后的参数),之后在终端中输入sudo fink -y install wget automake1.9 ncurses readline texinfo libusb libtool libtool14 sdl回车(注:Leopard上的fink可能会有一部分没有,没有的这些工具可以参照下面给出的方法手动安装),会要求输入管理员密码,之后等待安装完成。
手动安装的方法:
进入这个地址([url]http://pdb.finkproject.org/pdb/index.php?phpLang=en[/url])搜索需要手动安装的包名,在之后的列表里点击,再点开Web Side后的网页,寻找对应版本(在上一个页面中和自己机器MacOSX版本/体系结构相对应的那行),下载源码包(*.tar.gz),然后解压出来。开一个终端,进入解压出的那个目录。执行
[quote]./configure
make
sudo make install[/quote]
7.将[quote]/usr/local/bin[/quote]添加到PATH中去(在~/.bash_profile里)。注:/sw/bin,/usr/local/bin这两个目录需要注意排序,希望用哪个目录中的工具就将哪个目录提前,/usr/bin等目录亦是如此。[/color]

[b]#设置环境变量[/b]
将[quote]
export PSPDEV=/usr/local/pspdev
export PSPSDK=$PSPDEV/psp/sdk

export PATH=$PATH:$PSPDEV/bin:$PSPDEV/psp/bin:$PSPSDK/bin
[/quote]
添加到用户目录下的.bashrc(对应bash)或.profile(对应sh/ksh)中去,[color=Magenta]MacOSX还是添加到.bash_profile中[/color]。

[b]#安装PSPSDK[/b]
1.有两种方式可以得到psptoolchain。
第一种:到[url]http://ps2dev.org/psp/Tools/Toolchain[/url]找到psptoolchain的安装配置脚本,如果没有的话,或是想用最新的SVN版本,可以到置顶的[分享]PSP自制软件所需/推荐工具集中找到。
第二种:用svn从ps2dev.org的svn服务器上得下来。具体到命令就是svn co svn://svn.ps2dev.org/psp/trunk/psptoolchain。之后会在当前目录下产生一个psptoolchain目录。然后直接跳到第5步。
2.下载之后放到用户目录(~/或home/$用户名,[color=Magenta]MacOSX为/Users/$用户名[/color])下。
3.进入用户目录(cd ~/或/home/$用户名或[color=Magenta]/Users/$用户名[/color])。
4.输入tar xzvf [psptoolchain文件名] 回车,等待解压缩。
5.输入cd psptoolchain 回车。[color=Magenta]
在终端中执行:
[quote]
sudo mkdir -p /usr/local/pspdev
sudo chmod a+rwx /usr/local/pspdev
[/quote]
下载附件中的psptoolchain-osx-patches.tar.bz2(是个老外做的,在此标示感谢,附件里追加了对应rev.2415版psptoolchain的OSX补丁包,以后我会不定期更新)。将里面的内容解压到psptoolchain目录下。
在终端中执行:
[quote]
./patch-osx-toolchain.sh
./toolchain.sh
[/quote]
然后直接跳到第7步。
[/color]
6.在终端中执行(注:非管理员权限用户请使用toolchain-sudo.sh):
[quote]
chmod a+x ./toolchain.sh
./toolchain.sh
[/quote]
或者
[quote]
chmod a+x ./toolchain-sudo.sh
sudo ./toolchain-sudo.sh
[/quote]
7.然后就是漫长的下载与编译(Cygwin所需要的时间比BSD和MacOSX要长很多),这个过程无需手动,如果中途没发生什么异常的话(Error/Faild之类的),就算完事了。

[b]#测试[/b]
1.在控制台/终端中,输入psp-gcc -v回车,看看会不会出现[quote]
Using built-in specs
Target: psp
Configured with: ../configure --prefix=/usr/local/pspdev --target=psp --enable-languages=c,c++ --with-newlib --enable-cxx-flags=-G0
Thread model: single
gcc version 4.1.0 (PSPDEV 20060507)[/quote]
2.进入任意一个示例目录(在$PSPSDK/samples里随意挑选一个),输入make回车,如果没有错误并成功生成了EBOOT.PBP的话,你的PSPSDK就已经安装成功了。

[b]#安装有用的库[/b]
利用svn,我们还可以安装一些比较有用的库,例如zlib,libpng,jpeg等等。
具体方法是进入用户目录,创建一个svn目录(mkdir svn,当然别的目录也可以,重要的是方便用完后清除),然后在当前目录下输入svn co svn://svn.ps2dev.org/psp/trunk/$你需要安装的库的名称 回车,将源代码下载完成之后,按照其内的README.PSP进行安装即可。
列举一些库的简单依赖(安装)顺序:[quote]
zlib
libpng
jpeg
mikmodlib
[/quote]
列举一些需要autogen的库:[quote]
libogg
freetype
[/quote]

[b]#更新PSPSDK[/b]
和安装有用的库一样,我们通过SVN来更新PSPSDK。
在终端下执行svn co svn://svn.ps2dev.org/psp/trunk/pspsdk,或者如果你之前并没有删除掉从SVN得下来的PSPSDK的话,可以在该目录下直接执行svn up来更新你的PSPSDK源代码。更新好源代码之后,重新编译PSPSDK即可。

[b]#其它我认为比较有用的小玩艺儿[/b]
1.gvim,这个不用多说了吧。[color=Blue]在NetBSD下,它在pkgsrc/editors/vim-gtk2里。[/color][color=Magenta]在MacOSX下,你可以通过fink得到,也可以在[url]http://macvim.org/OSX/index.php[/url]处下载dmg镜像。[/color]
[color=Magenta]2.QuickSilver for MacOSX,如果你对笔记本的触摸板或轨迹杆憎恨不已,又不想加上USB鼠标键盘,它会是个不错的解决方案。[/color]

[b]#FAQs[/b]
1.我输入"./toolchain.sh"之后出现"ERROR: Please make sure you have GNU 'make' installed.","...'patch'...","...'wget'...","...'subversion (svn)'..."之类的,然后就安装就停止了,这是怎么回事?
>这是因为你并没有安装这些东西。

2.编译时突然停止了,输出了这个"aclocal: configure.ac: 11: macro 'AM_PROG_AS' not found in library",怎么办?
>请确定automake的版本是最新的。

3.如果在编译时出现了如下这种错误
[quote]make[4]: *** read jobs pipe: No such file or directory.  Stop.
make[4]: *** Waiting for unfinished jobs....[/quote]
>请确定安装好了gmake 3.81或更高版本,并作为默认make。

4.如果在Configuring过程中出现了不可识别的目标平台'psp'的问题,例如如下这种情况
[quote]checking target system type... Invalid configuration 'psp': machine 'psp' not recognized[/quote]
>很有可能是patch并没有被成功打上。当出现这种错误时,查看一下patch文件是否成了空文件,如果是的话,有可能是在从SVN获取patch的时候,没有获取成功,从而被替换成了空文件。可以通过修改shell的方式,屏蔽掉即时获取patch文件,但要确保正确的patch文件已经存在相应的本地目录下。

[color=Green]5.如果Home/[username]目录里没有,bashrc怎么办?
>可以通过修改Cygwin根目录下的cygwin.bat文件来解决,在bash --login -i上面加入:[quote]
set PSPDEV=X:/cygwin/usr/local/pspdev
set PSPSDK=X:/cygwin/usr/local/pspdev/psp/sdk
set PATH=%PATH%;%PSPDEV%/bin;%PSPSDK%/bin[/quote]

6.如果Cygwin一直连接不上服务器怎么办?
>有人反映过一直都连接不上服务器,这个我也碰到过一次,这时就可以用FTP工具下载(我使用的是FileZilla),在Cygwin Mirrors里找个服务器,就可以把release目录下的东西,需要什么就下载到本地,然后用本地安装即可。这是个非常麻烦的方法,万不得已不要去用,建议多试着重新连接几次。[/color]

/maxhoov

[[i] 本帖最后由 maxhoov 于 2008-8-10 12:07 编辑 [/i]]

newcoms 2005-8-6 14:41

Cygwin是什么东东?

linlance 2005-8-6 15:13

请问楼主,你成功编译过月光大大的那个CNREADER嘛?
如果有,能否提供详细步骤?不胜感激,谢谢哦。

eastwicked 2005-8-7 12:44

帮你顶上去

newman66 2005-8-7 14:14

我输入"./toolchain.sh"之后出现"svn:not find","ERROR:Please make sure you have 'subversion(svn)' installed"之类的,然后就安装就停止了,这是怎么回事?

maxhoov 2005-8-7 15:30

>>linlance
那个不是用PSPSDK编写的,需要移植一下.
>>newman66
请参考FAQs1,要完全安装.这样能少很多麻烦.

/maxhoov

newman66 2005-8-7 16:31

我的cygwin是完全安装的呀:(

maxhoov 2005-8-7 19:11

>>>newman66
仔细看看toolchain.sh,出错的那段代码是:[color=red]
## Check for subversion.
if test "`svn help`" ; then
  SVN="svn"
else
  echo "ERROR: Please make sure you have 'subversion (svn)' installed."
  exit
fi[/color]
也就是说,如果你在控制台输入svn help,没有出来以下这些东西(有40多行):[color=red]
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.2.0.
......
For additional information, see [url]http://subversion.tigris.org/[/url][/color]
那就证明你没有安装svn,也就绝对不可能是完全安装,那你就要好好看看上面安装Cygwin那一章,最好再参考那个提供的参考文献(里面有图片,更详细些),重新再装一遍.

/maxhoov

linlance 2005-8-7 20:54

[quote][b]下面是引用maxhoov于2005-08-07 15:30发表的:[/b]
>>linlance
那个不是用PSPSDK编写的,需要移植一下.
>>newman66
请参考FAQs1,要完全安装.这样能少很多麻烦.

.......[/quote]
汗,那个是用什么写的?
能介绍一下嘛?
没看到任何资料:(

看里面的文件结构,还有零星的表示,好像在Cygwin这个环境下做的哦。。。
也许用了最初的16点阵的方式显示中文?:)

maxhoov 2005-8-8 08:30

>>>linlance
用下面这个帖子里的方法A去建立一个开发环境,
[url]http://bbs.pspchina.net/read.php?tid=15154&fpage=15[/url]
用目录下的ee/bin/ee-gcc.exe对应mk.bat中的ee-gcc编译就行了.

/maxhoov

psveind 2005-10-6 23:09

我安装了所有需要安装的包,但是COMPILE TOOLCHAIN总是出错。昨天下载最新版的TOOLCHAIN还是不行。

[URL=http://img207.imageshack.us/my.php?image=a5xr.jpg][img]http://img207.imageshack.us/img207/7231/a5xr.th.jpg[/img][/URL]

请问怎么解决这个问题?谢谢

maxhoov 2005-10-7 00:06

>>>psveind
PSPTOOLCHAIN安装时是会有些这样那样的小问题(Building Error什么的),如果你之前安装过PSPTOOLCHAIN的话,最好将PSPTOOLCHAIN的压缩包及其解压和下载出的文件全部删除,然后再按帖子中的方法进行安装,我在更新PSPTOOLCHAIN20050801时也遇到过此类问题,照上述方法解决即可.

/maxhoov

psveind 2005-10-7 16:41

好的,谢谢,我现在试试

littlelio 2005-10-7 16:56



我觉得,这个教程应该面向不同读者。对于计算机专业和平时作为业余爱好的话,分开来写成两篇……

maxhoov 2005-10-7 17:08

>>>littlelio
在建立开发环境方面,目前还没这个必要.
如果今后开辟出了专门面向PSP开发者的新区时,我准备将我写的这些教程统统整理一下,系统的,综合的整理出一套面向初学者的实用性教程,虽然我知道自己的实力还远远不足以教别人,但我还是想尝试一下,尽量做到不会误导大家^_^b

/maxhoov

psveind 2005-10-7 17:21

maxhoov

我刚刚又试了一下,再次出错。会不会是CYGWIN的问题?我是按照着国外的一些教程安装CYGWIN的,不是安装所有的包。

maxhoov 2005-10-7 17:39

>>>psveind
-_-b
我是按照本文提供的方法做出的判断.本文的方法还是比较简单的,成功率应该也不是很低,最难能可贵的是它是中文的,因为除了编程语言外,我也就中文比较强了,当然这是相对而言的,我编程语言其实也是很烂地.
如果你更愿意使用外国教程的方法的话,可以给我个链接,我帮你看看,只能说是看看,本人水平有限,万一解决不了还得多担待.

/maxhoov

psveind 2005-10-7 19:07

主要是我当初没有发现有相关的中文教程,所以就去看英文的了,昨天才在那个开编程版的建议贴里发现这个帖子。

现在能看到中文方面的教程很高兴。

我主要参考的是这个帖子里的方法,其实方法都差不多,估计是我自己安装时出问题
[url]http://forums.qj.net/showthread.php?t=9686[/url]

ahtya 2005-10-8 21:55

我在[url]http://www.oopo.net/consoledev/[/url]下了psptoolchain-20050906.tgz编译安装似乎很正常。
但是在编译cwd例程的时候会报如下错误:
psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -O2 -G0 -Wall   -c -o main.o mai
n.c
psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -O2 -G0 -Wall  -L. -L/usr/local/
pspdev/psp/sdk/lib   main.o  -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk
-lc -lpsputility -lpspuser -lpspkernel -o cwd.elf
/usr/local/pspdev/lib/gcc/psp/4.0.1/../../../../psp/lib/libc.a(pspcwd.o): In fun
ction `__psp_init_cwd':
../../../../../../newlib/libc/sys/psp/pspcwd.c:28: undefined reference to `__psp
_argv_0'
../../../../../../newlib/libc/sys/psp/pspcwd.c:28: undefined reference to `__psp
_argv_0'
collect2: ld returned 1 exit status
make: *** [cwd.elf] Error 1

小朱仔仔 2005-10-9 13:38

#检查
我输入psp-gcc -v
卻得到
bash:psp-gcc: command not found
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: [教程]简述在Cygwin/BSD/MacOSX下建立PSP开发环境@2008-08-10