差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| gnustep:helloworld [2025/05/21 02:52] – [リンク] freemikan | gnustep:helloworld [2025/06/13 12:45] (現在) – Replace ObjC with Objective-C freemikan | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== Hello World ====== | ====== Hello World ====== | ||
| + | [[gnustep: | ||
| + | |||
| まずは、Objective-Cによって書かれたHello Worldプログラムを実行することを目標とします。 | まずは、Objective-Cによって書かれたHello Worldプログラムを実行することを目標とします。 | ||
| ===== Hello Worldのソースコード ===== | ===== Hello Worldのソースコード ===== | ||
| - | 以下のコードを | + | 以下のコードをhello.mとして保存します。 |
| - | ObjCのソースファイルは拡張子を__.m__とするのが通例となっているのでそれに習います。 | + | Objective-Cのソースファイルは拡張子を「.m」とするのが通例となっているのでそれに習います。 |
| <code objc> | <code objc> | ||
| 行 19: | 行 21: | ||
| </ | </ | ||
| - | これが最小のObjC+GNUstepのコードというわけではありませんが、十分に短く、かつ、GNUstepの環境が整っていなければビルドできないので、テスト素材としてはちょうどよいです。 | + | これが最小のObjective-C+GNUstepのコードというわけではありませんが、十分に短く、かつ、GNUstepの環境が整っていなければビルドできないので、テスト素材としてはちょうどよいです。 |
| 行 38: | 行 40: | ||
| </ | </ | ||
| - | 拡張子が__.d__の__hello.d__は依存するヘッダファイルをMakeが認識するフォーマットでダンプされたものです。 | + | 拡張子が「.d」のhello.dは依存するヘッダファイルをMakeが認識するフォーマットでダンプされたものです。 |
| このファイルはgccに'' | このファイルはgccに'' | ||
| 行 50: | 行 52: | ||
| この出力をgccのオプションとして利用するために、シェルのコマンド置き換えの機能を利用しています。 | この出力をgccのオプションとして利用するために、シェルのコマンド置き換えの機能を利用しています。 | ||
| - | '' | + | '' |
| <cli> | <cli> | ||
| 行 61: | 行 63: | ||
| <cli> | <cli> | ||
| - | $ gcc hello.o | + | $ gcc -o hello hello.o |
| </ | </ | ||
| - | 問題がなければ、gccに'' | + | GNUstepの環境に問題がなければ、gccに'' |
| <cli> | <cli> | ||
| $ ls | $ ls | ||
| - | hello | + | hello hello.d |
| </ | </ | ||
| - | 確かに | + | 確かに実行可能バイナリファイルhelloが生成されています。 |
| これを実行してみます。 | これを実行してみます。 | ||
| 行 83: | 行 85: | ||
| - | < | + | < |
| - | **gccに与える入力ファイル__hello.o__の位置は意味を持ちます。** | + | **gccに与える入力ファイルhello.oの位置は意味を持ちます。** |
| 例えば、次のようにしてしまうとリンクはパスしません。 | 例えば、次のようにしてしまうとリンクはパスしません。 | ||
| 行 93: | 行 95: | ||
| < | < | ||
| - | gnustep-configのオプションには'' | + | gnustep-configのオプションには'' |
| - | しかし、今回はこれを使いません(使えません)。 | + | しかし、今回はこれを使いません(使えません)。 |
| - | '' | + | '' |
| </ | </ | ||
| ===== Objective-CとGNUstepの関係について ===== | ===== Objective-CとGNUstepの関係について ===== | ||
| Objective-Cはもちろんプログラミング言語ですが、言語単独では極めて使い勝手が悪いです。 | Objective-Cはもちろんプログラミング言語ですが、言語単独では極めて使い勝手が悪いです。 | ||
| - | C言語のスーパーセットである(つまり、C言語として使うことができる)ことを除けば、ほとんど何もできないといってもいいです。 | + | C言語のスーパーセットである(つまり、C言語として使うことができる)ことを除けば、ほとんど何もできないといってもいいくらいです。 |
| AppleのObjective-Cによるプログラミングを支えるのはFoundationフレームワークとCocoaフレームワークであり、切り離すことは困難です。 | AppleのObjective-Cによるプログラミングを支えるのはFoundationフレームワークとCocoaフレームワークであり、切り離すことは困難です。 | ||
| GNUstepはFoundationフレームワーク及びCocoaフレームワークの代替となります。 | GNUstepはFoundationフレームワーク及びCocoaフレームワークの代替となります。 | ||
