忍者ブログ
2024 / 09
≪ 2024 / 081 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 2024 / 10 ≫

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



プログラムのコンパイルと実行 について

一番初めのObjective-Cプログラム

objc0201.jpg










Song.h
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>

// Songクラスの宣言
@interface Song : NSObject {
  NSString *lyrics;
}
- (NSString *)lyrics;
- (void)setLyrics:(NSString *)argLyrics;
@end


Singer.h
#import <Foundation/NSObject.h>
#import <stdio.h>
#import "Song.h"

// Singerクラスの宣言
@interface Singer : NSObject {
  Song *song;
}
- (void)setSong:(Song *)argSong;
- (void)sing;
@end

Song.m
#import "Song.h"

// Songクラスの実装
@implementation Song : NSObject
- (NSString *)lyrics{
  return lyrics;
}
- (void)setLyrics:(NSString *)argLyrics {
  lyrics = argLyrics;
}
@end


Singer.m
#import "Singer.h"

// Singerクラスの実装
@implementation Singer : NSObject
- (void)setSong:(Song *)argSong {
  song = argSong;
}
- (void)sing{
  printf(
    "♪ %s ♪ \n",
    [[song lyrics] UTF8String]);
}
@end


main.m
#import "Song.h"
#import "Singer.h""

// 実行プログラム
int main(void) {

  id song;
  id singer;

  song = [[Song alloc] init];
  [song setLyrics:@"La La La ..."];

  singer = [[Singer alloc] init];
  [singer setSong:song];
  [singer sing];

  return 0;
}


objc0202.jpgObjective-Cのコンパイル(およびリンク)には、gccというコマンドラインのプログラムを利用します。gccは、C/C++/Objective-CなどのC系言語共通のコンパイラで、Xcode Toolsと一緒にインストールされます。

 では、実際にプログラムをコンパイルして実行してみましょう。まずはMacでターミナルを起動し、先ほど作成したプログラムのソースファイルが置いてあるフォルダへ移動してください。そして以下のコマンドを1行ずつ順番に実行してみてください。

gcc -c main.m
gcc -c Song.m
gcc -c Singer.m


↑各ソースファイルがバイナリファイルへとコンパイルされる。
lsコマンドでファイルの存在を確認。
それぞれのファイルに対し、拡張子「.o」のファイルが生成される。これがバイナリファイル。

↓各ソースファイルがコンパイルできたら、次にバイナリファイルを関連付けるリンクを実行し、最終的なプログラムの実行ファイルを生成します。以下のコマンドを実行。
gcc -o myFirstProgram main.o Song.o Singer.o -framework Foundation
-o myFirstProgramの部分は、生成される実行ファイルのファイル名を指定しています。続けて、先ほどコンパイルしたバイナリファイル群を指定します。最後の-frameworkオ プションは、そのプログラムが必要とするフレームワークを指定するものです。フレームワーク側のファイルは直接プログラム内に組み込まれるわけではありま せんが、このプログラムがどのフレームワークに依存しているか(実行時に何が必要となるか)は、ここで明示しておく必要がある。

lsコマンドで確認してみると、先ほど-oオプションで指定した名称の、プログラムの実行ファイルが生成されていることが分かります。では、いよいよ実行。
./myFirstProgram

♪ La La La ... ♪


先ほどは実行ファイル作成の流れを体感してみるためにあえてコンパイルとリンクを個別に行いましたが、これらを一気に実行することもできます。上記と同じ実行ファイル名で、コンパイルからリンクまでを実行する場合、コマンドは以下のようになる。
gcc -o myFirstProgram main.m Song.m Singer.m -framework Foundation

-------------------------------------------------------------------------------------------------------
Cのコンパイルのやり方をメモ・・・




PR


08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
HN:
cow

自己紹介:
iPhone購入がきっかけでiPhoneアプリの制作にチャレンジ!