linux makefileの作成
2568 ワード
概要:
gccをコンパイルする際に効率的にコンパイルするmakeについて説明します.
C言語コンパイル基礎
Source file:
C言語を用いて文法論理に従って作成されたプログラムを元のファイルまたはソースファイルと呼ぶ.
C言語で作成したソースファイルの拡張子は.cになります.
Object file:
コンピュータは0と1で構成されているため、ソースファイルを0と1に変更する必要があります.これをcompileと呼びます.compileはコンパイラによって実行され,コンパイルが完了してマシンに変換されるファイルをオブジェクトファイル(Object file)と呼ぶ.
拡張子は.私.objになる.
linker
1つ以上のオブジェクトファイルとライブラリファイル、オペレーティングシステムインタフェースを担当する起動コードを1つのファイルにマージする操作をリンクと呼びます.
linkが終了したら、新しい実行可能ファイルまたはライブラリファイルを作成します.
GCCコンパイルの使用
Source file:
C言語を用いて文法論理に従って作成されたプログラムを元のファイルまたはソースファイルと呼ぶ.
C言語で作成したソースファイルの拡張子は.cになります.
Object file:
コンピュータは0と1で構成されているため、ソースファイルを0と1に変更する必要があります.これをcompileと呼びます.compileはコンパイラによって実行され,コンパイルが完了してマシンに変換されるファイルをオブジェクトファイル(Object file)と呼ぶ.
拡張子は.私.objになる.
linker
1つ以上のオブジェクトファイルとライブラリファイル、オペレーティングシステムインタフェースを担当する起動コードを1つのファイルにマージする操作をリンクと呼びます.
linkが終了したら、新しい実行可能ファイルまたはライブラリファイルを作成します.
GCCコンパイルの使用
gcc -c -o calc.o calc.c
gcc -c -o core.o core.c
(-oオプションが指定されていない場合は、a.outを自分で作成します.)
gcc -o calc.exe calc.o core.o
make fileの作成
CC = gcc //매크로 정의
calc.exe: calc.o core.o //타겟할 목표: 의존파일, 의존 파일
$(CC) -o calc.exe calc.o core.o //실행할 명령어들
calc.o: calc.c
$(CC) -c -o calc.o calc.c
core.o: core.c
$(CC) -c -o core.o core.c
ただし、$()はマクロです.cc=gccと定義し、ccでgccを定義する上記の変数(に示すように)のみを変更することで、コマンドのcommandを簡単に変更できます.
効率的なmakefile
CC = gcc
CFLAGS = -W -Wall
Target = calc.exe
Object = calc.o core.o
//메크로 정의
all : $(Target)
$(Target): $(Object)
$(CC) $(CFLAGS) -o $@ $^
clean:
sudo rm *.o $(Target)
'$@'現在のターゲットの名前'$^'現在のターゲットの依存オブジェクトのリスト
参考にする。
参考にする。
これは、再帰的に実行されることを意味します.
Reference
この問題について(linux makefileの作成), 我々は、より多くの情報をここで見つけました https://velog.io/@reversesky/linux-MakeFile-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol