我正在分析eclipse中自动生成的makefile,我发现了一些我无法找到解释的东西。
在“src \ Eep.EepIO.o.opt”行中:.refresh .refresh 是什么?
@argfile 是什么意思?
以下是.mk文件内容供参考
C_FILES += "..\src\Eep\EepIO.c"
OBJ_FILES += "src\Eep\EepIO.o"
"src\Eep\EepIO.o" : "..\src\Eep\EepIO.c" "src\Eep\.EepIO.o.opt"
@echo Compiling ${<F}
@"${PRODDIR}\bin\cctc" -f "src\Eep\.EepIO.o.opt"
"src\Eep\.EepIO.o.opt" : .refresh
@argfile "src\Eep\.EepIO.o.opt" -o "src\Eep\EepIO.o" "..\src\Eep\EepIO.c" -Ctc23x --lsl-core=vtc -t -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\Fbl" -Wa-H"sfr/regtc23x.def" -Wa-gAHLs --emit-locals=-equs,-symbols -Wa-Ogs -Wa--error-limit=42 -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\cnf" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\_Common" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\_Template" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\Eep" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\Fbl" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\Flash" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\SecMod" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\WrapNv" --iso=99 --language=-gcc,-volatile,+strings,-kanji --fp-model=3 --switch=auto --align=0 --default-near-size=8 --default-a0-size=0 --default-a1-size=0 -ONrPfceogvIlywakMsU --tradeoff=4 --compact-max-size=200 -g --source -c --dep-file="src\Eep\.EepIO.o.d" -Wc--make-target="src\Eep\EepIO.o"
DEPENDENCY_FILES += "src\Eep\.EepIO.o.d"
GENERATED_FILES += "src\Eep\EepIO.o" "src\Eep\.EepIO.o.opt" "src\Eep\.EepIO.o.d" "src\Eep\EepIO.src" "src\Eep\EepIO.lst"
答案 0 :(得分:1)
该行:
"src\Eep\.EepIO.o.opt" : .refresh
表示文件src\Eep\.EepIO.o.opt
取决于文件.refresh
。如果.refresh
已更改,它将运行以下命令来重建目标src\Eep\.EepIO.o.opt
。在这种情况下,该命令是
@argfile "src\Eep\.EepIO.o.opt" -o "src\Eep\EepIO.o"...
@
符号只是抑制命令的输出。所以它实际运行的命令是argfile
。