我分析了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"发布于 2016-01-04 16:02:51
这句话:
"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。
https://stackoverflow.com/questions/34594637
复制相似问题