Linux下编译链接多个源文件
2012-09-19 15:08
120 查看
Linux下编译链接多个源文件
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。 库文件的后缀暂时还是更改不了
参考来源: http://blog.csdn.net/gc315630/article/details/4530440
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。 库文件的后缀暂时还是更改不了
参考来源: http://blog.csdn.net/gc315630/article/details/4530440
相关文章推荐
- 在Linux 下编译链接多个源文件
- 在Linux 下编译链接多个源文件
- Linux下GCC 编译时如何指定链接库
- linux 编译,链接和加载
- Linux下编译使用自己的动态链接库-详解
- Linux中c程序的编译链接过程2017/12/10
- C++ 在 Linux下编译动态链接库
- linux 动态库和静态库编译链接方法
- 汇编程序 在 linux下编译,链接,运行
- Linux 编译 链接和加载
- linux下C/C++编译时系统搜索 include 和 链接库 文件路径的指定
- linux下gcc编译使用opencv的源文件时报错的处理:undefined reference to symbol '_ZNSsD1Ev@@GLIBCXX_3.4'
- 动态库的编译和链接(linux)
- 编译链接-----Linux下的lds链接脚本简介
- Linux程序编译链接动态库版本的问题
- 在linux中进行编译链接的一些选项
- 如何将arm-linux-gcc编译的动态链接helloworld在Android上运行
- Linux下编译、链接和装载
- C++头文件、源文件的编译链接
- linux 里的eclips编译OpenGL链接不到相应库的问题