ARM LINUX GCC簡易萬能makefile

2021-09-24 14:52:08 字數 1601 閱讀 9897

#created by jamiechu 2019-06-19 ;

#幾乎全自動了,改一下target_bin的值,然後扔到工程目錄下,執行make命令就可以了;

#也可以自行修改vpath來搜尋其他目錄;

#本makefile會自動生成依賴並在make的時候自動判斷依賴檔案是否為最新;

vpath = src:../headers #設定makefile額外的**搜尋目錄,不同目錄之間用:分開

target_bin := keyled.bin

target_elf := $(patsubst %.bin,%.elf,$(target_bin))

target_dump := $(patsubst %.bin,%.dump,$(target_bin))

src_s := $(shell ls *.s) #shaell是執行系統命令行命令的函式,這裡執行了ls

src_c := $(shell ls *.c)

src_h := $(shell ls *.h)

obj_s := $(patsubst %.s,%.o,$(src_s)) #patsubst是模式替換函式

obj_c := $(patsubst %.c,%.o,$(src_c))

dep_files := $(patsubst %.c,%.o.d,$(src_c)) #每個.o檔案的make依賴資訊,這假設每個c檔案都配有**件

dep_files := $(wildcard $(dep_files)) #篩選出真實存在的.d檔案,或者直接使用shell函式來ls *.d

cc := arm-linux-gcc

as := arm-linux-as

ld := arm-linux-ld

cflags := -mcpu=arm920t

$(target_bin):$(obj_s) $(obj_c)

arm-linux-ld -ttext 0 $^ -o $(target_elf)

arm-linux-objcopy -o binary -s $(target_elf) $(target_bin)

arm-linux-objdump -d $(target_elf) > $(target_dump)

ifneq ($(dep_files),) #第一次編譯,肯定沒有.d檔案,那麼dep_files就是空,所以不執行include

include $(dep_files) #第二次編譯剛好相反,所以include這個依賴資訊進來

endif

%.o:%.s

$(as) $(cflags) $< -o $@

%.o:%.c

$(cc) $(cflags) -c $< -o $@ -md -mf [email protected]

.phony:clean cleanall cleandepfiles

clean:

rm -rf *.o *.elf *.dump *.bin

cleanall:

rm -rf *.o *.elf *.dump *.bin *.d

cleandepfiles:

rm -rf *.d

萬能密碼 php,PHP萬能密碼

說實話如果乙個 的前台都是注入漏洞,那麼憑經驗,萬能密碼進後台的機率基本上是百分之百。可是有的人說對php的站如果是gpc魔術轉換開啟,就會對特殊符號轉義,就徹底杜絕了php注入。其實說這話的人沒有好好想過,更沒有嘗試過用萬能密碼進php的後台。其實gpc魔術轉換是否開啟對用萬能密碼進後台一點影響也...

mysql萬能 Mysql的萬能優化方法

在命令列執行 1.檢視優化器狀態 show variable like optimizer trace 2.會話級別臨時開啟 set session optimizer trace enabled on end markers in json on 3.設定優化器追蹤的記憶體大小 set optim...

萬能的應用商店 WiFi萬能助手

許可權列表 wifi萬能助手 獲取定位 允許應用通過網路或衛星對裝置進行定位 獲取額外的位置資訊提供程式命令 獲取額外的位置資訊提供程式命令。惡意應用程式可藉此干擾 gps 或其他位置源的正常工作。檢視網路狀態 允許應用程式檢視所有網路的狀態。開關wlan 允許應用開啟或關閉wlan 作為帳戶身份驗...