Linux C 多文件编译

33 篇文章 1 订阅

多文件编译

将工程目录下的每个源文件都编译(通过编译器)成对应的目标文件(Linux平台下为.o文件,是二进制的,但无法执行) ,然后将所有的目标文件库文件链接在一起(通过链接器)构成最终的可执行文件

注意:每个源文件都是单独编译的

例如:编译a.c文件(整个程序只有这一个源文件,多文件类比)

1. 生成二进制目标文件(默认生成a.o的文件):

(1) gcc a.c c  gcc  文件名 c;生成默认a.o文件)

 

(2) gcc a.c c  a.ogcc 文件名 c 生成文件;注意这种方法只能指定生成和默认文件名一样的文件名,此处只能指定生成的文件名是a.o,而不能指定其他的文件名,如果指定其他的文件名,依然生成的是默认的文件名,所以这种方法繁琐而没有意义,所以一般就直接用第一种方法 )

 



2. 链接生成可执行文件

(1) gcc hello.o  (gcc 文件名 ;生成默认文件a.out)

 

(2) gcc hello.o o a(gcc 文件名o 文件名;生成指定文件名的可执行文件

 

上面是分开的编译链接步骤,其实编译器可以直接将他们一步执行到位,直接用命令:

gcc a.c 或者gcc a.co a

分别生成默认文件或者自定义文件名的可执行文件

通过上面的原理掌握单源文件的编译,下面是多文件的编译过程

有三个文件

 




 


 

 


 


最简单的方法,当然也可以分步骤进行

1. 先编译成二进制文件(一个个的编译,或者三个一起编译)

2. 再生成可执行文件(一个个的编译,或者三个一起编译)

或者

add.h hello.h等带.h后缀的文件一般只写函数声明,add.c  hello.c main.c等.c文件只写函数,这样就相当于.h为函数声明,.c文件为源程序,然后再一起编译也是可以的,上述截图的简单方法相当于没有函数声明,直接将函数放在.h的文件中了,只是为了简单,并不符合编程规范。

比较规范的做法是可以只编译.c文件的

如:有下面5个文件

可以值编译.c文件的


 

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值