Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I force make/GCC to show me the commands?

I'm trying to debug a compilation problem, but I cannot seem to get GCC (or maybe it is make??) to show me the actual compiler and linker commands it is executing.

Here is the output I am seeing:

  CCLD   libvirt_parthelper libvirt_parthelper-parthelper.o: In function `main': /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:102: undefined reference to `ped_device_get' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:116: undefined reference to `ped_disk_new' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:122: undefined reference to `ped_disk_next_partition' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition' collect2: ld returned 1 exit status make[3]: *** [libvirt_parthelper] Error 1 

What I want to see should be similar to this:

$ make gcc -Wall   -c -o main.o main.c gcc -Wall   -c -o hello_fn.o hello_fn.c gcc   main.o hello_fn.o   -o main 

Notice how this example has the complete gcc command displayed. The above example merely shows things like "CCLD libvirt_parthelper". I'm not sure how to control this behavior.

like image 224
hernejj Avatar asked Apr 28 '11 14:04

hernejj


2 Answers

To invoke a dry run:

make -n 

This will show what make is attempting to do.

like image 52
chrisaycock Avatar answered Oct 04 '22 16:10

chrisaycock


Library makefiles, which are generated by autotools (the ./configure you have to issue) often have a verbose option, so basically, using make VERBOSE=1 or make V=1 should give you the full commands.

But this depends on how the makefile was generated.

The -d option might help, but it will give you an extremely long output.

like image 35
Gui13 Avatar answered Oct 04 '22 17:10

Gui13