linux下生成.so文件和.a文件

转载 2013年12月04日 02:19:42

test.h

复制代码
1 #ifndef _TEST_H_
2 #define _TEST_H_
3 
4 void TestA();
5 void TestB();
6 
7 #endif
复制代码



test_a.cpp

复制代码
1 #include <stdio.h>
2 #include "test.h"
3 
4 void TestA()
5 {
6     printf("TestA func\n");
7 }
复制代码



test_b.cpp

复制代码
1 #include <stdio.h>
2 #include "test.h"
3 
4 void TestB()
5 {
6     printf("TestB func\n");
7 }
复制代码



生成so文件的命令

g++ test_a.cpp test_b.cpp -fPIC -shared -o libtest.so

生成.a文件的命令

1 gcc -c test_a.cpp
2 gcc -c test_b.cpp
3 ar -r libtest.a test_a.o test_b.o




test.cpp

复制代码
1 #include "test.h"
2 
3 int main()
4 {
5     TestA();
6     TestB();
7 
8     return 0;
9 }
复制代码



采用动态库编译命令

g++ test.cpp -o test -L. -ltest



执行

export LD_LIBRARY_PATH=./
./test

执行结果如下。

 

采用静态库编译命令

g++ -static -o test -L. -ltest test.cpp

执行效果


静态库的嵌套调用,有时候我想做一个自己的静态库,它里面要调用其他静态库里面的函数,经过试验

这个好像用ar -r不行,所以就在链接的时候需要两个库文件都包含,同时要有这一个头文件才行。。。


转自:http://www.cnblogs.com/tzhangofseu/archive/2011/11/15/2249585.html

linux下的.so和.a文件

原地址:http://blog.csdn.net/nieyinyin/article/details/6890557 Linux下的.so是基于Linux下的动态链接,其功能和作用类似与wind...
  • ns708865818
  • ns708865818
  • 2016年05月25日 13:40
  • 150

关于如何在linux环境下生成a库和so库(改,附图)

一般linux环境下的链接库分为a库和so库,分别表示静态链接库和动态链接库,其作用是把C程序编译好做成一种可执行链接文件,c主程序文件调用这些程序的函数接口是可以使用a库或so库,在主程序中只需要i...
  • csdncqmyg
  • csdncqmyg
  • 2016年09月21日 15:03
  • 3495

linux下.o文件、.a文件、.so文件、.bin文件

.o文件::: 目标文件。就相当于windows里的obj文件 ,一个.c或.cpp文件对应一个.o文件.a文件::: 是好多个.o合在一起的静态库文件,相当于windows下的.lib文件。给外部程...
  • lanxueCC
  • lanxueCC
  • 2016年10月12日 20:02
  • 2131

linux下生成.so文件和.a文件

http://www.cnblogs.com/tzhangofseu/archive/2011/11/15/2249585.html
  • el_vr
  • el_vr
  • 2013年10月04日 23:55
  • 252

Linux下生成.so文件

.so文件是什么?linux下的.so文件即Shared Libraries。Shared Library 是程序运行时加载的库文件。当一个shared library 被成功的安装以后,之后启动的所...
  • lmw21848
  • lmw21848
  • 2016年07月28日 09:47
  • 264

Linux 动态和静态库(.so & .a)的Makefile模板

目录结构: CommomLib--|inc                    --|src                    --|obj                    --|...
  • cupidove
  • cupidove
  • 2013年08月01日 16:17
  • 11521

AS 如何生成 .so文件

简单整理一下 jni .so文件的生成 留着自己复习在看
  • guo984298820
  • guo984298820
  • 2017年06月22日 15:34
  • 901

用makefile编译生成.a文件(linux静态库),并编译进可执行文件中

文件列表: 代码文件/* 下列代码保存到 plus.cpp */int my_plus(int x,int y) { return x + y; } /* 下列代码保存到 m...
  • aflyeaglenku
  • aflyeaglenku
  • 2015年08月19日 14:15
  • 9103

Linux的.a、.so和.o文件

我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两 种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态 库在程序编译时并不会被连接到目标代码...
  • chlele0105
  • chlele0105
  • 2014年04月14日 17:03
  • 10768

把ffmpeg编译成单独的so文件

在之前的一篇《FFMPEG移植到Android(ubuntu环境下)》讲到如何在android ndk下编译ffmpeg,但这个例子是生成多个so文件的。如果想最后只生成一个libffmpeg.so,...
  • fsfcvictor
  • fsfcvictor
  • 2010年11月05日 10:17
  • 8677
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux下生成.so文件和.a文件
举报原因:
原因补充:

(最多只允许输入30个字)