目标:运行C++代码
example:有func.h,func.cpp, main.cpp
- .h无需编译,但.h中函数实现的地方需要编译(func.cpp)
- 逻辑:cpp各自生成可执行文件(.o),再进行链接
g++ -c func.cpp
g++ -c main.cpp
g++ main.o func.o -o test
或者直接:g++ main.cpp func.cpp -o test
编译多目录下的文件时,可以利用 -I 指定需要链接的文件的地址,例如下图:先生成myhead.cpp的可执行文件myhead.o,然后再编译main.cpp时指定其头文件&头文件函数定义地址myhead.o。
头文件:
include有两种方式:#include “”,#include <>。
区别在于:前者是从当前的目录来搜索,后者是一般会先搜索 -I 选项后的路径(即用gcc/g++编译时的-I选项),之后就是标准的系统头文件路径。
通过cpp -v命令,可以查看标准系统头文件的路径。
一般是这三个目录:usr(unix system resource)
usr/include
usr/lib/include
usr/local/include
如果我们在给要编译的代码加上自己的头文件,应该怎么办?
1,在path里面加上自己的目录
2,gcc或g++ 编译的时候 ,加上 -I 选项
最暴力g++:把所有文件、依赖都写上
示例:https://github.com/tuhahaha/ddbms200
readme里面的编译方式,可以结合着makefile和g++指令来看。