問題:
調試編譯問題,如何獲取,GCC(或許make)時,實際編譯器和鏈接器正在執行的命令?
解決方法:
方法一:通用方法
使用dry run,如下
$ make -n
這將顯示make 命令正在試圖做的事情。
通過 $ make -h 命令,查看幫助可知,make -n實際並不運行任何命令,只是把make試圖做的事情顯示出來。
同一命令的等價參數
-n, --just-print, --dry-run, --recon
Don’t actually run any commands; just print them.
方法二:特定方法,適用於使用autotools產生的庫makefile文件
使用autotools(你必須發布./configure)產生的庫makefile文件常常有一個verbose選項,所以基本上,使用
make VERBOSE=1 或 make V=1
你將獲取到全部命令。但是這取決於makefile產生的方式。
make命令的-d選項可能會有幫助的,但是會有很長的輸出,而且也不是實際運行的命令,而是大量的調試信息。
-d 選項
Print lots of debugging information
參考資料:
How do I force make/gcc to show me the commands?
http://stackoverflow.com/questions/5820303/how-do-i-force-make-gcc-to-show-me-the-commands