新建一個最小的Makefile工程(C語言)
新建一個原始檔main.c
#include<stdio.h>
int main()
{
printf("Welcome to Makefile and ld.script project ! \r\n");
return 0;
}
新建一個連結指令碼檔案ld.script
ld -verbose > ld.script
注意:需要將ld.script檔案中的頭部和尾部非法內容去掉。
新建一個Makefile檔案
TARGET = main.bin
BUILD = main.elf
OBJS = main.o
CROSS_COMPILE =
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)gcc
OBJCOPY = $(CROSS_COMPILE)objcopy
CFLAGS = -Wall -g
LDFLAGS = -Wall -g -T ld.script
all:$(TARGET)
$(TARGET):$(BUILD)
$(OBJCOPY) -O binary $^ $@
$(BUILD):$(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%.o:%.c
$(CC) $(CFLAGS) -c -o $@ $^
%.o:%.S
$(CC) $(CFLAGS) -c -o $@ $^
clean:
rm -f $(TARGET) $(BUILD) *.o
工程的使用
編譯工程:
make
./main.elf
清除工程
make clean
相關文章
- C語言的本質(36)——makefile基礎C語言
- C語言的本質(38)——makefile之變數C語言變數
- GO語言一個簡單的工程Go
- MinUnit – 最小的c語言測試模板 (轉)C語言
- C語言第一個程式C語言
- 一分鐘開始持續整合之旅系列之:C 語言 + Makefile
- C語言(C++語言)中##(兩個井號)和#(一個井號)用法[轉]C語言C++
- C語言(一)C語言
- 新建React Native工程使用TypeScript語言:RN版本升級持續更新建立方法React NativeTypeScript
- idea如何新建一個springmvc 工程IdeaSpringMVC
- Eclipse CDT 匯入 Makefile 構建的 C/C++ 工程EclipseC++
- C語言:一個例子理解 union 和 structC語言Struct
- 一個小而美的 C 語言專案
- C語言:一種高效、易學的程式語言C語言
- C語言的本質(37)——makefile之隱含規則和模式規則C語言模式
- Makefile之大型工程專案子目錄Makefile的一種通用寫法
- 【c語言】把一個長整型給一個字元指標C語言字元指標
- [C語言] 第一章|C語言入門第一課C語言
- C語言實現一個簡易的Hash table(7)C語言
- 用 C 語言寫一個簡單的 Unix Shell(1)
- 一個關於pynoi遊戲的C語言程式設計遊戲C語言程式設計
- 用 C 語言寫一個簡單的 Unix Shell(2)
- 【01】視C++為一個語言聯邦C++
- 如何用 C 語言畫一個“聖誕樹”?
- 【c語言】判斷一個數是奇偶數C語言
- 12個有趣的C語言問答C語言
- C語言的幾個關鍵字C語言
- C語言:10個元素整型陣列,最小值和第一個元素交換,最大值與最後一個元素交換C語言陣列
- C語言入門題-7-1 最大和最小 (10分)C語言
- 新建立的工程一片空白:使用WEEX遇到的第一個坑
- C語言輸入一個數輸出對應的值C語言
- 用 C 語言編寫一個簡單的垃圾回收器
- 【c語言】判斷一個數是不是2的n次方C語言
- C語言 C語言野指標C語言指標
- C語言---“C語言 誰與爭鋒?”C語言
- C語言:判斷一個字串是否為迴文C語言字串
- 使用 C 語言實現一個虛擬機器虛擬機
- C語言實現的一個簡單的猜數小遊戲C語言遊戲