對於linux系統中使用gcc進行編譯:
# 列出當前目錄下所有*.c檔案
src :=
$(wildcard *.c)
# 將所有*.c檔案轉為*.o檔案
obj :=
$(patsubst %.c, %.o, $(src)
)# 指定編譯器
cc = gcc
# 指定鏈結器
cclink = g++
# 指定編譯屬性
cflags = -g -wall
# 指定編譯輸出的可執行程式名稱
outname := helloworld
all: $(obj)
$(cclink)
$(cflags)
$^ -o $(outname)
$(obj)
: %.o:%.c
$(cc)
$(cflags)
-c $^ -o $@
.phony:clean
clean:
rm *.o $(outname)
對於嵌入式linux使用交叉編譯器進行編譯:
src :=
$obj := $
cc = arm-linux-gcc
cclink = arm-linux-ld
cflags = -g -c -wall
all: $(obj)
$(cclink)
-wall $^ -o all.bin
$(obj)
: %.o:%.c
$(cc)
$(cflags)
$^ -o $@
.phony:clean
clean:
rm *.o all all.bin
對於linux編譯模組:
# 指定模組名稱
obj-m := helloworld.o
# 指定核心原始碼目錄
kdir := /lib/modules/$(shell uname -r)
/build
# 指定將編譯輸出到當前目錄
pwd :=
$(shell pwd
)all:
make -c $(kdir)
m=$(pwd)
modules
.phony:clean
clean:
make -c $(kdir)
m=$(pwd)
modules clean
對於嵌入式linux編譯模組:
# 指定模組名稱
obj-m := helloworld.o
# 指定編譯平台
arch := arm
# 指定交叉編譯器
cross_compile := arm-linux-
# 指定核心原始碼目錄
kdir := /opt/embeded/dts-demo/linux-4.0.1
# 指定將編譯輸出到當前目錄
pwd :=
$(shell pwd
)all:
make arch=
$(arch)
cross_compile=
$(cross_compile)
-c $(kdir)
m=$(pwd)
modules
.phony:clean
clean:
make -c $(kdir)
m=$(pwd)
modules clean
嵌入式 linux 編譯
第二次換了編譯環境編譯時又提示 make 3 drivers video console vgacon.o 錯誤 1 在網上搜尋結果 根據資訊的大概意思是關於vga的支援問題,在這裡我直接把關於vga的配置選項去掉不選,即 在執行 make menuconfig 配置時 不選vga 驅動。devic...
linux嵌入式開發
我的環境 主機 ubuntu 64位 開發板 mini2440 6 makefile檔案修改 在 opt friendlyarm mini2440 linux 2.6.29下執行 sudo vi.makefile 搜尋arm linux得到乙個結果 cross compile?arm linux 然...
嵌入式 Linux介紹
嵌入式 linux介紹 一 嵌入式是一門it技術。嵌入式這門it技術是幹什麼的?他有什麼價值?專門生產功能專一的智慧型電子產品 電子裝置 什麼是電子裝置?通電的東西,嵌入式來搞定,而且沒通電的影象化介面屬於應用層的那種,嵌入式也可以搞定。二 嵌入式開發的分類 基於系統平台的開發 做出來的產品有搭載系...