我们先来看一个简单程序:

#include <iostream>
using namespace std;

int main()
{
    cout << "hello world" << endl;
	
    return 0;
}
       然后来看看makefile:

main: main.o 
	g++ -o main main.o
main.o: main.cpp
	g++ -o main.o -c main.cpp

clean:
	rm -f main *.o
      看一下执行结果:

taoge@localhost Desktop> make 
g++ -o main.o -c main.cpp
g++ -o main main.o
taoge@localhost Desktop> ls
main  main.cpp  main.o  makefile
taoge@localhost Desktop> make clean
rm -f main *.o
taoge@localhost Desktop> ls
main.cpp  makefile
<pre name="code" class="plain">taoge@localhost Desktop>
taoge@localhost Desktop>
taoge@localhost Desktop>
taoge@localhost Desktop> make -ng++ -o main.o -c main.cppg++ -o main main.otaoge@localhost Desktop> lsmain.cpp makefile

 


       可以看到, 执行make -n的时候, 并没有生成真正的文件, 因为这知识一个调试命令, 它仅仅列出即将执行的命令, 但不会具体执行命令。 很多时候, 我们调试makefile的时候, 需要用到-n参数。

       再来看一下:

taoge@localhost Desktop>:~/test> make 
g++ -o main.o -c main.cpp
g++ -o main main.o
taoge@localhost Desktop>:~/test> make -n
make: `main' is up to date.
       一目了然。







本文转载:CSDN博客