在我的makefile中,我想使用size
命令输出的内容以readelf
命令输出格式输出文件。
我可以在shell脚本中成功执行命令,但是当我将命令放入makefile中时,$((16#$${hex}))
不起作用,因此dec
没有值。我从vim UI文本颜色猜测,它可能是)
的最后$((16#$${hex}))
个不正确。我对makefile不太熟悉,有人知道如何处理吗?
size.txt : Makefile
$(MAKE) objs
echo " text data bss dec hex filename ">$@
(for X in `find . -name '*.o' -print` ; do \
hex=`readelf -S -W $$X | grep '\sAX\s' | sed 's/\s\s*/ /g' | cut -d ' ' -f 8`; \
dec=`echo $((16#$${hex}))`;\
echo " $${dec} 0 0 $${dec} $${hex} $$X"; \
done) >>$@
现在输出为0 0 00000030 xxxx.o
,预期输出为48 0 0 48 00000030 xxxx.o
。