在Linux 下编译链接多个源文件
来源:互联网 发布:aes256加密算法 java 编辑:程序博客网 时间:2024/04/28 08:48
add.c 的内容
int Add(int a,int b)
{
int result;
result=a+b;
return result;
}
minus.c 的内容
int Minus(int a,int b)
{
int result;
result=a-b;
return result;
}
all.c的内容
#include<stdio.h>
int main(void)
{
int a=8;
int b=3;
printf("a=%d b=%d/n",a,b);
int sum=Add(a,b);
printf("a+b=%d/n",sum);
int cha=Minus(a,b);
printf("a-b=%d/n",cha);
return 0;
}
把三个文件统一编译链接 进行处理 有这么几种方法
1 单个文件的编译最后统一链接
gcc -c all.c
gcc -c add.c
gcc -c minus.c
最后生成的是三个.o文件
gcc all.o add.o minus.o -o all 生成的是可执行文件all
2 三个文件一起编译链接
gcc add.c minus.c all.c -o all 生成的是可执行文件 all
3 先将add.c 和minus.c 生成.o文件 再生成库文件 对all.c进行编译链接
gcc -c add.c minus.c 生成.o文件
ar rv libtest.a add.o minus.o 对.o文件生成libtest.a 库文件,将这个库文件拷贝到/usr/lib目录下,
gcc -o all all.c -ltest 对测试程序进行编译链接
最后生成可执行文件 all
这里要注意的是生成的库文件名字和后来编译all.c时候使用的库文件要对应起来。上文中使用的是libtest.a 后面就使用-ltest。如果前面使用liball.a,后面就得使用-lall。 库文件的后缀暂时还是更改不了。
写的简单Makefile:
test:all.o add.o minus.o
gcc -o all all.o add.o minus.o
all.o:all.c
gcc -c all.c
add.o:add.c
gcc -c add.c
minus.o:minus.c
gcc -c minus.c
clean:
rm -f all.o add.o minus.o
保存成makefile,直接在当前目录下运行指令make
刚开始没有成功,把Makefile更改成文件a,直接运行make -f a 。指定a为Makefile便可以成功。
后来直接把文件名更改成了Makefile 便成功了。
- 在Linux 下编译链接多个源文件
- 在Linux 下编译链接多个源文件
- Linux下编译链接多个源文件
- 命令行模式下编译多个C/C++源文件
- 在WinAVR中设置Makefile自动编译多个源文件
- linux gcc编译多个源文件的方法
- linux编译多个源文件成同一个模块
- gcc 编译多个源文件
- gcc 编译多个源文件
- gcc 编译多个源文件
- gcc 编译多个源文件
- gcc 编译多个源文件
- gcc 编译多个源文件
- gcc 编译多个源文件
- gcc编译多个源文件
- gcc 编译多个源文件
- gcc 编译多个源文件
- gcc 编译多个源文件
- 2014-11-6Android学习------在手机上用鼠标绘图的处理---贝塞尔曲线(一)
- 地产电子烟花企业纷纷跨界 40家公司试水P2P风险未卜
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- 反射得到资料完善进度
- 带参数的批处理
- 在Linux 下编译链接多个源文件
- HTTP 1.1与HTTP 1.0的比较
- 工作周记
- 【数据结构】二叉树中包含的【堆栈、链表、队列】
- 雏菊与罂粟花
- kaptcha 验证码组件使用简介
- 批处理下各符号的作用详解
- host字段变复杂了
- OPENGL ES1.X多重纹理的实现