Linux cc与gcc
来源:互联网 发布:VPN服务器指向域名 编辑:程序博客网 时间:2024/05/17 00:56
三个源文件:main.c sum.c show.c
/* main.c */ extern int sum(int m, int n); extern void show(int data); int main(void) { show(sum(3, 5)); return 0; } /* sum.c */ int sum(int m, int n) { return m+n; } /* show.c */ #include <stdio.h> void show(int data) { printf("%d\n", data); }Makefile大体上有两种写法:
(第一种)
#Makefile objs=main.o sum.o show.o main:$(objs) gcc $^ -o $@ main.o:main.c gcc -c $< sum.o:sum.c gcc -c $< show.o:show.c gcc -c $< clean: rm -rf *.o .*.sw?(第二种)
/* Makefile */ objs=main.o sum.o show.o main:$(objs) gcc $^ -o $@ clean: rm -rf *.o .*.sw?
下面列举以上两种的编译过程:
(第一种)
cc -c -o main.o main.c
cc -c -o sum.o sum.c
cc -c -o show.o show.c
gcc main.o sum.o show.o -o main
(第二种)
gcc -c main.c
gcc -c sum.c
gcc -c show.c
gcc main.o sum.o show.o -o main
以上两种Makefile写法都能正确编译和输出,此时很容易看出区别,虽然第二种看起来省略很多,但是各有利弊,下面介绍异同:
1、写的makefile的时候我们是可以省略生成.o文件那一步,直接由C文件生成的(源文件比较少时OK);
2、编译的时候,目录里面没有main.o sum.o show.o这个文件,但是硬要强制去编译这个的话,系统就会用cc自动先把相关的.c文件转化成相关的.o文件;
3、第二种(简单的)方法可以用(但是建议不要这么用),如果编译的文件比较多,而且彼此之间交叉的多的时候,容易出问题,如果出了问题,处理的时候就不容易查找问题 ;
4、要是找别人给你调试Makefile的时候,别人会看不懂。
阅读全文
0 0
- Linux cc与gcc
- Linux下的cc与gcc
- Linux下 CC 与 GCC 的区别
- linux命令cc与gcc比较
- [转]Linux CC与Linux GCC的区别概括介绍
- Linux新手学堂:CC与GCC的区别概括介绍
- Linux CC与GCC的区别概括介绍
- Linux CC与GCC的区别概括介绍
- Linux CC与GCC的区别概括介绍
- CC与GCC的区别
- Linux下的gcc,cc,g++,CC的区别
- linux下的cc和gcc
- linux 创建软链接 (cc-->gcc)
- linux环境下cc和gcc工具
- Linux 下 的 cc 和 gcc
- Linux 下 的 cc 和 gcc
- Linux 下 的 cc 和 gcc
- Linux 下 的 cc 和 gcc
- 查找算法总结
- LSP序列号(Sequence Number)
- 17103001_Shell中数学计算总结
- 网易云信 集成
- 关系型数据库和非关系型数据库对比
- Linux cc与gcc
- Canvas画圆弧
- 51nod 1250 排列与交换 动态规划
- Apdex(Application Performance Index) 应用程序性能满意度的标准
- 《赢》读书摘要05
- RS-485自收发电路的参考设计
- Android APP开发字体更换
- HTML5开发必备-H5十三水棋牌源码合集
- Java