另一个()中的makefile $(())导致右括号不明确

时间:2018-12-28 05:57:27

标签: shell makefile

在我的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

0 个答案:

没有答案