UbuntuでC言語の「Hello, World!」を実行
1. プログラムの作成
ターミナルを開き、nano、vim、またはgeditを使用してhello.cという名前のファイルを作成して編集します。ここではnanoを使用します。
nano hello.cを実行し、以下のコードを入力します。
#include <stdio.h>
int main(void) {
puts("Hello, World!");
return 0;
}
Ctrl+Xを押し、次にYとEnterを押してnanoを保存して終了します。
2. プログラムのコンパイル
gccコンパイラを使用してソースコードを実行ファイルにコンパイルします。コマンドはgcc hello.c -o helloです。
3. プログラムの実行
./helloを入力すると、次のように表示されます。
Hello, World!
複数ファイルのコンパイル
(1)ファイルの作成
1. サブルーチンファイルsub1.cを作成します。nano sub1.cと入力し、その中に以下のコードを書きます。
int compute_product(int a, int b) {
return a * b;
}
2. 同様の操作でメインプログラムmain.cファイルを作成します。
#include <stdio.h>
// プロトタイプ宣言
int compute_product(int a, int b);
int main(void) {
int result = compute_product(5, 7);
printf("5 * 7 = %d\n", result);
return 0;
}
(2)gccによるコンパイル
1. 2つのソースファイルを同時にコンパイルし、1つの実行ファイルにリンクします。
gcc main.c sub1.c -o myapp
2. 実行すると、次のように表示されます。
./myapp
5 * 7 = 35
(3)Windowsプラットフォームでのコンパイル
ツール:Dev-C++
上記と同じコードを使用すると、プログラムエラーが発生します。これは、メイン関数main.cをコンパイルする際に、compute_productが定義されていないという問題が発生するためです。したがって、2つのファイルを1つにまとめる必要があります。そうすることで正しい結果が出力されます。Dev-C++では、プロジェクトを作成して両方のソースファイルを追加するか、1つのファイルに統合することで解決できます。
(4)Makefileによるコンパイル
1. コマンドnano Makefileを使用してMakefileファイルを作成し、以下を入力します。
# コンパイラとオプション
CC = gcc
CFLAGS = -Wall -O2
# オブジェクトファイルと実行ファイル名
OBJ_FILES = main.o sub1.o
EXECUTABLE = calculator
# デフォルトターゲット
all: $(EXECUTABLE)
# 実行ファイルのリンク
$(EXECUTABLE): $(OBJ_FILES)
$(CC) $(CFLAGS) -o $@ $^
# 各オブジェクトファイルのコンパイル(パターンルールを使用)
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# クリーンアップ
clean:
rm -f $(OBJ_FILES) $(EXECUTABLE)
注意:
コード内の$(CC) $(CFLAGS) -o $@ $^、$(CC) $(CFLAGS) -c $< -o $@、rm -f $(OBJ_FILES) $(EXECUTABLE)の行の前には、スペースキーではなくTabキーによるインデントが必要です。nanoエディタでは、Tabキーとスペースが同じように見えることがあるため、注意して区別する必要があります。
2. Makefileを使用したコンパイル
ターミナルでmakeコマンドを実行すると、コンパイルプロセスが表示され、最終的に実行ファイルcalculatorが生成されます。プログラムを実行するには./calculatorを実行します。