在我们使用GCC编译器编译一个大程序的时候,可能一些头文件以及库会放在不同的文件夹中,经常容易导致GCC编译后的文件会报错,那么下面是主要简单介绍一下GCC关于库以及头文件的内容:
首先我们常见的工程结构主要是:Include、lib、src等等
假设我们的Main.c函数是在src目录下的话,我们学校的老师一般只会教我们在src目录下直接运行gcc main.c -o main
即可,但是这只是应对一个小程序,当我们真正去做一个大项目的时候,很明显是不能用的。
如图所示我们看看例子的目录结构:
如果我们要编译一个包含了整个工程结构的Main.c函数就应该要这样使用:
gcc src/main.c -o main -L/lib -lsum -I./include
下面来解释一下这个语句:
第一部分:gcc src/main.c -o main
就是使用GCC编译main.c程序为main的可执行文件
第二部分:-L/lib -lsum
这里是一个参数,用于链接sum这个库,然后要告诉系统这个库的位置,但是如果在我们后面真正接触项目的时候,一个文件夹里面还有很多库,因此我们就要指定一个库,我们就要在后面加上这个库的名字sum,-l是参数(小写L)。
(这里可能会有疑问就是:库的名称是有前缀以及后缀的,前缀是lib,后缀是.so,因此我们链接的时候只要输入库的名字,如sum即可。)
第三部分:-I./include
这里是指定头文件的地方,就是inlcude里面,但是可以发现这里不需要像库那样指定地那么多,其实也是有这个特定的指明,只不过在main.c函数中已经inlclude了这个头文件的位置。
但是如果是在Main.c文件中没有指定这个头文件的位置,在使用GCC编译语句中一样要指定头文件的名称,因为同一个文件夹中,还是有很多头文件的,这个大家都应该理解吧。
以上内容纯属本人小白初学Linux系统的一次学习笔记,如果对您有所帮助,我很高兴。若有写错或者说错的地方,请您多多包涵,望有更多大神来指点迷津,谢谢。