今天学了点unix的命令, 前天学了点gdb的调试, 昨天学了点makefile的知识, 贴个makefile的笔记:
/* hello.h */
#ifndef __HELLO_WORLD__
#define __HELLO_WORLD__
void hello();
#endif
/* hello.cpp */
#include <iostream>
#include "hello.h"
void hello()
{
std::cout << "Hello World!" << std::endl;
}
/* main.cpp */
#include "hello.h"
int main()
{
hello();
return 0;
}
objects=main.o hello.o
hello.exe:$(objects)
g++ -o hello.exe $(objects)
main.o:main.cpp hello.h
g++ -c main.cpp
hello.o:hello.cpp hello.h
g++ -c hello.cpp
rebuild:clean hello.exe
clean:
-rm hello.exe $(objects)
make # 如果hello.h hello.cpp main.cpp比hello.exe更新(或者hello.exe不存在), 则编译出hello.exe
make clean # 删除hello.exe hello.o main.o
make rebuild # 重编译出hello.exe
@cmd # make时不打印这条命令
cmd1 ; cmd2 # 在同一行中写两条命令时, 可用;间隔开