man make手册中是这样解释的:
-n Print the commands that would be executed, but do not execute them.
执行命令,但不是真正的执行。常用来看,自己写的makefile变量展开后是什么。
例如:
makefile中有如下:
........
tso_biz_alarmduty1.so:tso_biz_alarmduty1.o
${BACKUP_BIN}
$(EC_LINK_SO) -ltce64 -letf_tj_biz_alarmduty1 -lnnbd64 -lsxml64
......
如果 ${BACKUP_BIN}中再嵌套变量引用, 一个个查看出来是很麻烦的。
可以用:
make -n tso_biz_alarmduty1.so
执行结果:
gcc -L -L/home/junbao/develop/lib -L/home/junbao/develop/lib/ -L/usr/local/apr/lib -L/opt/oracle//product/10g/lib64 -L/opt/oracle//product/10g/rdbms/lib64 -L/opt/oracle//product/10g/lib -L/lib -shared -Wall -o /home/junbao/shlib/tso_bsp_goodsinfo.so tso_bsp_goodsinfo.o -lm -lncurses -ldl -lc -lxrpc64 -lsxml64 -lnnbd64 -lxrpc64 -lapr-1 -lclntsh -ltce64 -letf_tb_gamegoods -letf_tb_goodsitem -letf_tb_suplist -letf_public -lepp_para -lgb2py -lnnbd64 -lsxml64
很恐怖。