差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
gnustep:helloworld [2025/05/22 19:58] freemikangnustep:helloworld [2025/06/13 12:45] (現在) – Replace ObjC with Objective-C freemikan
行 1: 行 1:
 ====== Hello World ====== ====== Hello World ======
- +[[gnustep:|{{:gnustep:gnustep_logo.svg?150|GNUstep logo}}]]
-{{:gnustep:gnustep_logo.svg?200|}}+
  
 まずは、Objective-Cによって書かれたHello Worldプログラムを実行することを目標とします。 まずは、Objective-Cによって書かれたHello Worldプログラムを実行することを目標とします。
行 7: 行 6:
  
 ===== Hello Worldのソースコード ===== ===== Hello Worldのソースコード =====
-以下のコードを __hello.m__ として保存します。 +以下のコードをhello.mとして保存します。 
-ObjCのソースファイルは拡張子を__.m__とするのが通例となっているのでそれに習います。+Objective-Cのソースファイルは拡張子を.m」とするのが通例となっているのでそれに習います。
  
 <code objc> <code objc>
行 22: 行 21:
 </code> </code>
  
-これが最小のObjC+GNUstepのコードというわけではありませんが、十分に短く、かつ、GNUstepの環境が整っていなければビルドできないので、テスト素材としてはちょうどよいです。+これが最小のObjective-C+GNUstepのコードというわけではありませんが、十分に短く、かつ、GNUstepの環境が整っていなければビルドできないので、テスト素材としてはちょうどよいです。
  
  
行 41: 行 40:
 </cli> </cli>
  
-拡張子が__.d____hello.d__は依存するヘッダファイルをMakeが認識するフォーマットでダンプされたものです。+拡張子が.d」hello.dは依存するヘッダファイルをMakeが認識するフォーマットでダンプされたものです。
 このファイルはgccに''-MMD''オプションが与えられた場合に生成されます。 このファイルはgccに''-MMD''オプションが与えられた場合に生成されます。
  
行 53: 行 52:
  
 この出力をgccのオプションとして利用するために、シェルのコマンド置き換えの機能を利用しています。 この出力をgccのオプションとして利用するために、シェルのコマンド置き換えの機能を利用しています。
-''$(...)''の代わりにバックチック''`...`''することもできます。+''$(...)'' の代わりにバッククォート ''`...`'' することもできます。
  
 <cli> <cli>
行 64: 行 63:
  
 <cli> <cli>
-$ gcc hello.o -o hello $(gnustep-config --base-libs)+$ gcc -o hello hello.o $(gnustep-config --base-libs)
 </cli> </cli>
  
-GNUstepの環境に問題がなければ、gccに''-o hello''と指定したので、helloという名前の実行可能バイナリが生成されているはずです。+GNUstepの環境に問題がなければ、gccに''-o hello''と指定したので、helloという名前の実行可能バイナリファイルが生成されているはずです。
  
 <cli> <cli>
行 74: 行 73:
 </cli> </cli>
  
-確かに__hello__が生成されています。+確かに実行可能バイナリファイルhelloが生成されています。
 これを実行してみます。 これを実行してみます。
  
行 86: 行 85:
  
  
-<note important+<note> 
-**gccに与える入力ファイル__hello.o__の位置は意味を持ちます。**+**gccに与える入力ファイルhello.oの位置は意味を持ちます。**
 例えば、次のようにしてしまうとリンクはパスしません。 例えば、次のようにしてしまうとリンクはパスしません。
  
行 96: 行 95:
  
 <note> <note>
-gnustep-configのオプションには''--objc-libs''というものもあります。 +gnustep-configのオプションには''%%--%%objc-libs''というものもあります。 
-しかし、今回はこれを使いません(使えません)。 +しかし、今回はこれを使いません使えません。 
-''gnustep-config --base-libs''の出力には、''-lgnustep-base''が含まれていて、まさにそれが必要だからです。+''gnustep-config %%--%%base-libs''の出力には、''-lgnustep-base''が含まれていて、まさにそれが必要だからです。
 </note> </note>
  
 ===== 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フレームワークの代替となります。
文書の先頭へ