自己有一台PSP2000,玩了这么长时间的游戏,所以打算去探究一下PSP这个平台的程序的构建方式。

在网上搜了很多资料,感觉能用上的不多,毕竟这太小众了,通过自己的探索,总结了一下。

  1. 先搭建MinGW编译环境(参考:http://www.mingw.org/ 或点击直接下载链接),下载mingw-get-setup.exe。

    下载完之后,双击打开,直接点击下方的Install按钮

    这个页面就根据个人爱好选择吧,建议直接点Continue,之后就等待安装完毕。

    这时桌面上会出现下面的图标:

  2. 双击打开之后,如下图所示,在[Basic Setup]选项下,把右边的4个绿色的框选中。

    然后选择[Installation]à[Update Catalogue]

    慢慢等待下载…

  3. 完毕之后,可以启动命令行,输入[mingw32-gcc -v],查看当前C编译器的版本,如果没有正常显示的话,可能需要手动添加环境变量,这里不再赘述。

  4. 之后需要下载PSP的SDK(Software Develop Kit 软件开发工具包)包,参考http://devkitpro.org/ 或点击直接下载链接

    下载完之后,双击打开,一路都是Next,到以下的界面之后,在下拉框选择[devkitPSP],然后就是选择安装路径~

    慢慢等待下载和安装结束…

  5. 接下来就需要进行第一个PSP的程序编译工作了。

    进入刚刚安装好的devkitPSP文件夹,在其内部以此进入devkitPSP\psp\sdk\samples文件夹。

    这里面全是示例程序,而我们需要写的HelloWorld程序则使用exceptions这个文件夹的例程。

    这个文件夹里面有2个文件,main.cpp程序源文件和Makefile构建文件。

    用记事本将程序文件打开之后,修改

    然后打开命令行,使用cd命令定位到此文件夹,然后输入mingw32-make即可进行PSP程序的编译

    之后生成的文件如下图所示

    其中EBOOT.PBP就是我们需要的最终PSP能够执行的文件。

    在 PSP根目录/PSP/GAME下,创建一个Hello文件夹,然后把我们编译完成的EBOOT.PBP文件复制进去,这样就部署成功了(图以后补上)。

    最终,只需要打开PSP,就可以在游戏目录里面找到我们编译好的程序,运行即可~

    自此,PSP的Hello World就完成了,第一篇博文完成~撒花~

2015.5.3 使用Windows Live Writer更新。

PSP编程初探 Hello World的更多相关文章

  1. Haskell学习-函数式编程初探

    原文地址:Haskell学习-函数式编程初探   为什么要学习函数式编程?为什么要学习Haskell?   .net到前端,C#和JavaScript对我来说如果谈不上精通,最起码也算是到了非常熟悉的 ...

  2. Android Studio NDK编程初探

    继上一篇学习了如何使用NDK编译FFMPEG后,接下来就是要学习如何在Android Studio中使用了. 经过参考和一系列的摸索,记录下具体步骤. 创建C++ Support的Android St ...

  3. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探

    更新 1.如果看不懂本文,或者比较困难,先别着急问问题,我单写了一个关于依赖注入的小Demo,可以下载看看,多思考思考注入的原理: https://github.com/anjoy8/BlogArti ...

  4. Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探

    本文梯子 本文3.0版本文章 更新 代码已上传Github+Gitee,文末有地址 零.今天完成的绿色部分 一.依赖注入的理解和思考 二.常见的IoC框架有哪些 1.Autofac+原生 2.三种注入 ...

  5. iOS开发--Swift RAC响应式编程初探

    时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...

  6. Java动态编程初探——Javassist

    最近需要通过配置生成代码,减少重复编码和维护成本.用到了一些动态的特性,和大家分享下心得. 我们常用到的动态特性主要是反射,在运行时查找对象属性.方法,修改作用域,通过方法名称调用方法等.在线的应用不 ...

  7. C#基础系列——异步编程初探:async和await

    前言:前面有篇从应用层面上面介绍了下多线程的几种用法,有博友就说到了async, await等新语法.确实,没有异步的多线程是单调的.乏味的,async和await是出现在C#5.0之后,它的出现给了 ...

  8. Javascript 面向对象编程初探(一)--- 封装

    Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果 ...

  9. 老生常谈: Javascript 面向对象编程初探(一)--- 封装

    Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果 ...

随机推荐

  1. fs/ext2/inode.c相关函数注释

    用数组chain[4]描述四种不同的索引,即直接索引.一级间接索引.二级间接索引.三级间接索引.举例说明这个结构各个域的含义.如果文件内的块号为8,则不需要间接索引,所以只用chain[0]一个Ind ...

  2. c#使用MethodInvoker解决跨线程访问控件

      功能函数测试集锦(77)  C#专区(114)  版权声明:本文为博主原创文章,未经博主允许不得转载. .net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,有一种方法是禁止编译器对跨线 ...

  3. C#中String和string有什么区别

    在C#中,string 是 System.String 的别名,所以基本上在使用时是没有差别的. 习惯上,我们把字符串当作对象时(有值的对象实体),我们用string.而我们把它当类时(需要字符串类中 ...

  4. PHP手册总结《预定义变量》

    一:$_GET GET 是通过 urldecode() 传递的. 二:$_SERVER 这个数组中的项目由 Web 服务器创建.不能保证每个服务器都提供全部项目:服务器可能会忽略一些 三:$argc, ...

  5. Drawable和Bitmap转换

    一.Bitmap转Drawable Bitmap mBitMap=getYourBitMap(); //getYourBitMap()是你获取BitMap的方法 BitmapDrawable mBit ...

  6. 【技术文档】XuebaOnline配环境时遇到的问题和解决办法

    在Ubuntu下装XuebaOnline可能遇到的问题和解决办法 自动安装Python3.0以上版本 编译命令采用python3 manage.py runserver,所以在linux系统下需要安装 ...

  7. Java SortedSet接口

    该SortedSet的接口扩展集Set并声明了一组按升序排序的行为.除了通过集定义的那些方法中,SortedSet接口声明总结于下表的方法: 有几种方法没有任何条目包含在调用Set的时候抛出一个NoS ...

  8. 用英文加优先级来解读C的声明

    比如:int ( * func_p ) ( double ); 首先着眼于标识符. func_p is 因为存在括号,(* func_p) 先被处理,这里着眼于* func_p is a pointe ...

  9. Oracle基础(六) 数据类型

    一.Oracle中的数据类型 Oracle中提供了丰富的数据类型,用来存储数据,主要包括: 1.字符类型:主要用来存储字符串类型的数据. 数据类型 长度 说明 CHAR(n BYTE/CHAR) 默认 ...

  10. VMware系统运维(十八)部署虚拟化桌面 通过View Client进行连接测试

    1.打开VMware Horizon View Client添加服务器,配置连接服务器的IP地址等信息 2.点击云图标进行连接,点击继续,证书部分我们后面再讲 3.输入用户名密码,点击"登录 ...