コンテンツにスキップ

C 言語のビルド

ビルドとは

以下の通り、ソースコードから実行ファイルを作成する一連の作業をビルドと呼ぶ。

C/C++のビルドの仕組みとライブラリ - かみのメモ

Make

Make はビルドを楽にするコマンドである。

Windows では以下から Make をインストールし、C:\Program Files (x86)\GnuWin32\binをシステム環境変数に追加することで make コマンドを実行することができるようになる。

Make for Windows

Makefile

Makefile は make コマンドを使用する際に併せて用意するファイルで、コンパイラへ伝えるコンパイル方法、リンカへ伝えるリンク方法が記載される。

Makefile の解説

Makefile
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
OBJ_DIR = obj
BIN_DIR = bin

${BIN_DIR}/main.hex: ${OBJ_DIR}/main.o
    if not exist ${BIN_DIR} mkdir ${BIN_DIR}
    avr-gcc -Os -mmcu=atmega328p ${OBJ_DIR}/main.o -o ${BIN_DIR}/main.elf
    avr-objcopy -O ihex ${BIN_DIR}/main.elf ${BIN_DIR}/main.hex

${OBJ_DIR}/%.o: src/%.c
    if not exist ${OBJ_DIR} mkdir ${OBJ_DIR}
    avr-gcc -Os -mmcu=atmega328p -c $< -o $@

write: ${BIN_DIR}/main.hex
    avrdude -c usbasp -p m328p -P usb -U flash:w:${BIN_DIR}/main.hex:i

run:
    make
    make write

clean:
    del "${OBJ_DIR}\*.o" "${BIN_DIR}\*.elf" "${BIN_DIR}\*.hex"