Makefileのサンプル †本資料は、ヘッダーファイル、Cソースファイルの各依存関係を記したMakefileのサンプルになります。 スポンサーリンク Cサンプルソースなどの説明 †本資料で使用しているCサンプルソース、ヘッダーファイルは以下の通りです。 main.c †sub1.c, sub2.c の呼び出し元となる main.c は以下の通りです。 main.c (改行コードLF) #include <stdio.h> #include "sub1.h" #include "sub2.h" int main(void) { sub1_func(); sub2_func(); return 0; } sub1.c, sub1.h †main.cから呼び出されるsub1_func()のサンプルソースとヘッダーファイルです。 sub1.h †sub1.h (改行コードLF) #ifndef __SUB1_H__ #define __SUB1_H__ extern void sub1_func(void); #endif sub1.c †sub1.c (改行コードLF) #include <stdio.h> #include "sub1.h" void sub1_func(void) { printf("HELLO!\n"); } sub2.c, sub2.h †main.cから呼び出されるsub2_func()のサンプルソースとヘッダーファイルです。 sub2.h †sub2.h (改行コードLF) #ifndef __SUB2_H__ #define __SUB2_H__ extern void sub2_func(void); #endif sub2.c †sub2.c (改行コードLF) #include <stdio.h> #include "sub2.h" void sub2_func(void) { printf("BYE!\n"); } サンプルMakeファイル †以下に上記のCサンプルソース、ヘッダーファイルの依存関係を記したMakefileを記します。 Makefile (改行コードLF) # # Sample Makefile # CC = gcc CFLAGS=-O OBJS = main.o sub1.o sub2.o TARGET = sample sample: main.o sub1.o sub2.o $(CC) $(CFLAGS) $(OBJS) -o $(TARGET) main.o: main.c $(CC) -c main.c sub1.o: sub1.c sub1.h $(CC) -c sub1.c sub2.o: sub2.c sub2.h $(CC) -c sub2.c clean: rm -f $(OBJS) $(TARGET) 上記のMakefileを簡単に説明します。
Makeしてみる †以下に端末からmakeして実行した時のオペレーションを記します。 $ make gcc -c main.c gcc -c sub1.c gcc -c sub2.c gcc -O main.o sub1.o sub2.o -o sample $ ./sample HELLO! BYE! $ make clean rm -f main.o sub1.o sub2.o sample 以上、Makefileのサンプルでした。 スポンサーリンク |