源代码hel.h
#include "iostream"
源代码hel.cpp
#include "hel.h"
using namespace std;
int main(){
std::cout<< "--start---" << std::endl;
return 0;
}
方法一:
将hel.cpp编译成hel.o文件
g++ -c hel.cpp -o hel.o
将hel.o链接成可执行程序hel.out
$ g++ -o hel.out hel.o
方法二:
$ g++ -o hel.out hel.cpp
方法三:
写makefile文件
cc=g++
dst=hel.out
header=$(shell find ./ -iname "*.h" )
src=$(shell find ./ -iname "*.cpp" )
objs=$(src:%.cpp=%.o)
$(dst) : $(objs)
$(cc) -o $(dst) $(objs)
%.o: %.cpp $(header)
$(cc) -c $< -o $@ #其中 $<表示冒号后的依赖文件 *.cpp $@代表生成的冒号
前面的 *.o
clean:
rm -f *.o *.exe *~ *.out
解释如下:
(1)Makefile中的 符号 $@, $^, $< 的意思:
$@ 表示目标文件
$^ 表示所有的依赖文件
$< 表示第一个依赖文件
$? 表示比目标还要新的依赖文件列表
执行make命令自动生成目标文件
$ make
g++ -c hel.cpp -o hel.o #其中 hel.cpp表示冒号后的依赖文件 *.cpp hel.o代表生成的冒号前面的 *.o
g++ -o hel.out ./hel.o
以上三种方法都可以生成执行文件 hel.out
$ ./hel.out
--start---
运行结果