gcc 常用参数 -c -o

如果一个项目有两个h文件,三个c文件组成,其中一个c文件是main.c里面调用其他两个c文件中实现的函数。如下所示:

//mytool1.h

#ifndef _MYTOOL_1_H 
#define _MYTOOL_1_H 
    void mytool1_print(char *print_str); 
#endif 
 

//mytool1.c

#include "mytool1.h"
void mytool1_print(char *print_str)
{
  printf("This is mytool1 print %s ",print_str);

 

//mytool2.h

#ifndef _MYTOOL_2_H 
#define _MYTOOL_2_H 
void mytool2_print(char *print_str);
#endif 
 

//mytool2.c

#include "mytool2.h" 
void mytool2_print(char *print_str)

  printf("This is mytool2 print %s",print_str);
}

//main.c

#include "mytool1.h"
#include "mytool2.h"
int main(int argc,char **argv)
{
  mytool1_print("sds");
  mytool2_print("sdsd");
}

方法1:先只编译每个c文件,生成中间文件,再连接中间文件:

如果用gcc命令进行编译,可以每个c文件先生成中间文件即o文件,然后三个中间文件进行连接生成最中的可执行文件。

   gcc -c mytool1.c  //这样生成了mytool1.o文件

   gcc -o mytool2.c //这样生成了mytool2.o文件

   gcc -o main.c     //这样生成main.o文件

最后把生成的三个中间文件连接起来,最终生成可执行的test文件:

   gcc -o test mytool1.o mytool2.o main.o 

这个连接文件的顺序无所谓,只要保证这些被连接的o文件中有且仅有一个main函数即可。

方法2:直接生成最后的可执行文件,不生成过程o文件:

  gcc -o test mytool1.c mytool2.c main.c

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值