PSPのプログラミング:パートI、コンパイラーのセットアップ

すぐに同意しましょう。「学習による学習」のパターンに従います。 同時に勉強しながら、読者を2〜3ステップ先に追い越して教えています。 しかし、これは私が何も知らないという意味ではなく、私が言うのは普通のコピーと貼り付けだけです:私はそれについて書く前にトピックを理解しようとします。 質問をするのは遠慮なくしてください。これはあなた自身と私にとって有益です。答えがわからない質問については、それを探して認識し、伝えます。



したがって、このトピックでは、コンソールで最初のプログラムをコンパイルして実行する方法についての短い話があります。 ただの警告:メガ技術計画に関する記事で、ほとんどすべての内容は、退屈でありながら迅速なコンパイラーのセットアップに関するものであり、その結果、単なる「Hello World」しか得られません。 ただし、それなしではありません。



Sony PSPプレフィックスがあり、最新バージョン-3.90 M33-3(いわゆるカスタムファームウェア、非公式ファームウェア)にフラッシュされていることは当然と想定します。 多くの人がすでにフラッシュの再書き込みの方法について話しているので、これについては触れません。 また、少なくとも50kbの空きスペースがあるフラッシュドライブがブリックに挿入され、それらにアクセスできると仮定します(たとえば、PSP自体を介して)。



すぐに言います:あなたが十分注意していれば、プレフィックスには何も悪いことはほとんどないと確信していますが、残念ながら保証はできません。



使用されるプログラミング言語はCです。WindowsXPでは無料のIDE コード::ブロックを使用します。 他のコンパイラーまたはOSのユーザーは、IDEを自分で構成することができます。幸いなことに、設定はすべてのユーザーに似ています。 私はマニュアルを見つけたものを使用しました;)



始めるには、 DevKitPSPと呼ばれるPSPのコンパイラ、リンカー、およびライブラリのセットをダウンロードします。 どこかに解凍し、E:ドライブのルートに解凍しました(E:\ devkitpsp \フォルダーがあります)。



次に、コード::ブロックを開きます。 メニューで、設定→コンパイラーとデバッガーを選択し、開いたウィンドウの選択されたコンパイラーとして、GNU GCC(デフォルト)を選択してコピーし、DevKitPSPなどを呼び出して構成します。



[検索ディレクトリ]→[コンパイラ]タブ(そこにあるものをすべて削除し、[追加]をクリックして各パスを追加します):

E:\ devkitPSP \ include

E:\ devkitPSP \ psp \ include

E:\ devkitPSP \ psp \ sdk \ include

リンカー:

E:\ devkitPSP \ lib

E:\ devkitPSP \ psp \ lib

E:\ devkitPSP \ psp \ sdk \ lib




ツールチェーンの実行可能ファイルタブ:

コンパイラのインストールディレクトリ:E:\ devkitPSP。 このフォルダーにbinサブフォルダーが必要であることに注意してください。

Cコンパイラ:psp-gcc.exe

C ++-コンパイラ:psp-g ++。Exe

動的ライブラリのリンカー:psp-g ++。Exe

静的ライブラリのリンカー:psp-ar.exe

さらに3つのフィールドを空のままにしました。





OKを押して、新しいプロジェクトの作成に進むことができます(ファイル→新規→プロジェクト...、ウィンドウの左側で[プロジェクト]をクリックして[空]を選択します)。 プロジェクトのタイトルを入力します(PSPHelloWorldになります)、プロジェクトを保存するフォルダーを置くことを忘れないでください(私は初めて忘れて、たくさんの不具合やエラーがありました)。 もちろん、私たちが新しく作成したコンパイラーを使用します。



私たちのプロジェクトは空です、ファイルを作成します(ファイル→新規→ファイル...、名前について気にしません、main.cを選択しました)-ファイル作成ウィザードでC言語を選択し、「現在のプロジェクトに追加」、「デバッグ「そして」リリース」(なぜデフォルトではないのですか?)。



作成したファイルで、 コードをコピーします (アクセスキーはHabrahabrです)。 もしそれがハブラパーサー用でなければ、ここに投げたでしょう。 ちなみに、私はコードを書いていませんでした。経験はまだ十分ではありませんが、そこで何が起こっているか、そしてどのようにかについては完全に理解しています。



カスタマイズする最後の仕上げです。 コンパイルの対象は既に設定されていますが、どのように、何を処理すべきかを設定していません。 したがって、右側のプロジェクトの名前を右クリックして、[プロパティ]を選択し、そこから[ビルドターゲット]を選択します。 「ファイル名拡張子を自動生成する」ボックスのチェックを外し、出力ファイル名で拡張子「exe」を「elf」に編集します。 リリース構成にも同じことを行い、[OK]をクリックします。



プロジェクト名をもう一度右クリックし、[ビルドオプション]を選択し、[リンカーオプション]タブで、[その他のリンカーオプション]に入力します。

-lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lpsplibc -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel
。 リリースを繰り返します。



すべてのように(これが退屈な技術計画の最後の記事であることを願っています)。 現在、プロジェクトを組み立てています(ビルド→ビルドまたはCtrl-F9、誰もがおなじみです)-突然エラーが表示された場合、何が間違っていたのかを考え、コメントで尋ねます(おそらく忘れました)。



後で再度設定しないようにするには、プロジェクトをテンプレートとして保存する価値があります([ファイル]→[プロジェクトをユーザーテンプレートとして保存...])。



したがって、プログラムのエルフファイルがあります。 PSPに投げる前に、それをEBOOT.PBPに変換する必要があります(この名前は正直、私が発明したものではありません)。 このために、私はそのようなバットニックネームを持っています:



「E:\ devkitPSP \ bin \ mksfo.exe」%1 / bin / Debug /%1%1 / bin / Debug /%1.sfo

「E:\ devkitPSP \ bin \ psp-fixup-imports.exe」%1 / bin / Debug /%1.elf

「E:\ devkitPSP \ bin \ psp-strip.exe」%1 / bin / Debug /%1.elf -o%1 / bin / Debug / stripped.elf

「E:\ devkitPSP \ bin \ pack-pbp.exe」%1 / bin / Debug / EBOOT.PBP%1 / bin / Debug /%1.sfo NULL NULL NULL NULL NULL NULL%1 / bin / Debug / stripped.elfヌル




これはpspprjディレクトリにあり、プロジェクトごとにフォルダを作成します。 make_eboot.bat HelloWorldのように使用されます。 フォルダーの構成が異なる場合、またはフォルダーを書き換える、または各プログラムを手動で実行する場合は、%1をファイルの名前またはパスに置き換えて、一度に1行ずつ実行するだけです。 その結果、EBOOT.PBPファイルを取得し、/ PSP / GAME150 / HelloWorld(または他の名前)/フォルダーにドロップする必要があります。その他はすべて安全に削除できます。 ここで確認します(終了-[ホーム]ボタンを押して)。



「宿題」として-すべての「ワールドワード」が新しい行からのものであることを確認してください。 じゃあね!



PS私は最初に書いたすべての「ユーモア」を切り取りました。 この種の投稿でいつも愚かなジョークは私を悩ませましたが、私の冗談が愚かではないことは確信できません:)



All Articles