Linux .so库的使用

Linux .so库的使用,第1张

新建一个sort.c文件,写一个最简单的排序

使用 gcc -o libsort.so -fPIC -shared sort.c 产生libsort.so库。

.so库有两种调用方法:

新建main.c文件:

使用命令 gcc -o main main.c -lsort -L. 编译

新建main2.c文件:

使用命令 gcc -o main2 main2.c -ldl 编译。动态加载.so库的话需要-ldl。

运行./main2后输出递增序列,调用成功。

1、下载ffmpeg。

下载网址:http://www.ffmpeg.org/download.html

2、解压缩

tar -zxvf ffmpeg-2.0.1.tar.gz

3、配置,生成Makefile

./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg

如果执行结果不对,可以根据提示信息,并查看帮助,解决问题

./configure --help

4、编译安装

make

make install

5、安装之后在/usr/local/ffmpeg会看到有三个目录

bin 执行文件目录

lib 静态,动态链接库目录

include 编程用到的头文件

为了防止执行程序找不到库文件,

可以将/usr/local/ffmpeg/lib目录设置到LD_LIBRARY_PATH环境变量,

或者查看/usr/local/ffmpeg/lib下所有的链接,并在/usr/lib下建立同样的链接。如下。

ln -s /usr/local/ffmpeg/lib/libavcodec.so /usr/lib/libavcodec.so

ln -s /usr/local/ffmpeg/lib/libavdevice.so /usr/lib/libavdevice.so

ln -s /usr/local/ffmpeg/lib/libavfilter.so /usr/lib/libavfilter.so

ln -s /usr/local/ffmpeg/lib/libavformat.so /usr/lib/libavformat.so

ln -s /usr/local/ffmpeg/lib/libavutil.so /usr/lib/libavutil.so

ln -s /usr/local/ffmpeg/lib/libswresample.so /usr/lib/libswresample.so

ln -s /usr/local/ffmpeg/lib/libswscale.so /usr/lib/libswscale.so

ln -s /usr/local/ffmpeg/lib/libavcodec.so /usr/lib/libavcodec.so.55

ln -s /usr/local/ffmpeg/lib/libavdevice.so /usr/lib/libavdevice.so.55

ln -s /usr/local/ffmpeg/lib/libavfilter.so /usr/lib/libavfilter.so.3

ln -s /usr/local/ffmpeg/lib/libavformat.so /usr/lib/libavformat.so.55

ln -s /usr/local/ffmpeg/lib/libavutil.so /usr/lib/libavutil.so.52

ln -s /usr/local/ffmpeg/lib/libswresample.so /usr/lib/libswresample.so.0

ln -s /usr/local/ffmpeg/lib/libswscale.so /usr/lib/libswscale.so.2

这时就需要在/etc/ld.so.conf下面加一行/usr/local/ffmpeg/lib,保存过后ldconfig一下,

这时就需要在/etc/ld.so.conf下面加一行/usr/local/MySQL/lib,保存过后ldconfig一下,

6、编译测试程序

gcc -o ffmpegtest ffmpegtest.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavtuil

7、执行程序

./ffmpegtest

或直接执行/usr/local/ffmpeg/lib目录下的./ffmpeg进行测试。

linux下的.so文件为共享库,相当于windows下的dll文件,使用方法如下:

在你的工程源代码里包含.h头文件,然后可以调用动态库里的函数,在链接的时候加上如下编译器参数:

-l xx.so

如果你的so文件是以lib开头的,还可以直接这样使用:

-lxx

xx是你的.so文件名

其实使用方法和你使用数学库函数是一样的,源代码中添加

#include ,编译的时候,加上-lm参数。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9000307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存