linux下gcc编译静态库和动态库
2017-11-11 14:26
197 查看
库文件源代码,文件名称coutlib.c
1 #include <stdio.h>
2 unsigned long count(unsigned int a, unsigned int b)
3 {
4 return a+b;
5 }
程序源代码,文件名称cout.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main(int argc,char *argv[])
4 {
5 unsigned int x,y;
6 sscanf(argv[1],"%u",&x);
7 sscanf(argv[2],"%u",&y);
8 printf("result is :%u\n",count(x,y));
9 return 0;
10 }
编译静态库:
1 生成.o文件gcc -c countlib.c,产物coutlib.o
2 生成.a库文件ar crv countlib.a countlib.o,产物coutlib.a
编译程序(带静态库coutlib.a编译)
gcc -o count count.c -L./ countlib.a
测试
./cout 2 4
结果 8
编译动态链接库
1 生成.o文件gcc -fPIC -c countlib.c,产物countlib.o
2 生成动态库文件 gcc -shared countlib.o -o countlib.so,产物countlib.so
动态链接库显式调用:在程序代码中书写调用
动态链接库隐式调用:在程序编译的时候调用
这里只说明一下隐式调用
gcc count.c -o count2 -L./ countlib.so
测试
./cout 2 4
结果
错误,没有coutlib.so文件
可以考虑把countlib.so放到/usr/lib下面,也可以考虑在/etc/ld/so.conf.d中把当前路径增加。
1 #include <stdio.h>
2 unsigned long count(unsigned int a, unsigned int b)
3 {
4 return a+b;
5 }
程序源代码,文件名称cout.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main(int argc,char *argv[])
4 {
5 unsigned int x,y;
6 sscanf(argv[1],"%u",&x);
7 sscanf(argv[2],"%u",&y);
8 printf("result is :%u\n",count(x,y));
9 return 0;
10 }
编译静态库:
1 生成.o文件gcc -c countlib.c,产物coutlib.o
2 生成.a库文件ar crv countlib.a countlib.o,产物coutlib.a
编译程序(带静态库coutlib.a编译)
gcc -o count count.c -L./ countlib.a
测试
./cout 2 4
结果 8
编译动态链接库
1 生成.o文件gcc -fPIC -c countlib.c,产物countlib.o
2 生成动态库文件 gcc -shared countlib.o -o countlib.so,产物countlib.so
动态链接库显式调用:在程序代码中书写调用
动态链接库隐式调用:在程序编译的时候调用
这里只说明一下隐式调用
gcc count.c -o count2 -L./ countlib.so
测试
./cout 2 4
结果
错误,没有coutlib.so文件
可以考虑把countlib.so放到/usr/lib下面,也可以考虑在/etc/ld/so.conf.d中把当前路径增加。
相关文章推荐
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- Linux操作 gcc编译过程 制作静态库、动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- linux下gcc编译静态库和动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- linux gcc使用静态库去编译生成动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- Linux下如何用GCC编译动态库
- Linux下用gcc生成静态库和动态库
- Linux C 编程入门之一:gcc 编译动态库和静态库
- linux下静态库、动态库的编译和使用
- GCC实现多文件编译,静态库,动态库