g++ linux

目标:运行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++指令来看。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容