libmysqlclient.so.15文件,是Linux系统中的【de】一【yī】个动态【tài】链接库文件,需要的用户可以到东阳绿色软件下载站下载,并按照以下的方式安装即可。
.so文件是Linux下的程序【xù】函数库,即编译【yì】好的【de】可以供其他程序使用的代码和数据
linux下何谓.so文件:
1. 用过windows的同学应该都知道 .dll文【wén】件吧, 这二者有什么共【gòng】通之处呢,其实 .so文件就跟.dll文件差不多.//
2.一般来说.so文件就是常说的动态链【liàn】接库, 都是C或C++编译出来的【de】。与Java比较就是:它通常是用的【de】Class文件(字节码).//
3.Linux下的.so文件时【shí】不能直接运【yùn】行的,一般来【lái】讲,.so文件称为共享库.//
for example:
(1)动态库的编译
这【zhè】里有一个头文件:so_test.h,三个.c文件【jiàn】:test_a.c、test_b.c、test_c.c,我们将这几个文件编译成一个动【dòng】态库【kù】:libtest.so。
命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so
(参考2:都是由C或C++编译出来的)
(-shared 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接【jiē】W类型的导出【chū】符号),不用该标志外部程序无法连接。相当于一个可执【zhí】行【háng】文件)
(-fPIC:表示编译为位置独【dú】立的代码【mǎ】,不用此选项的话编译后的代【dài】码是位置相关的所以动态载入时是通过代【dài】码拷贝的方式来【lái】满足不同进程的需要,而【ér】不【bú】能达到真正代码段共享的目的。)
(2)动态库的链接
这里有个程序源文件 test.c 与【yǔ】动态库 libtest.so 链接生成执行文件 test:
命令:$ gcc test.c -L. -ltest -o test
(注:测试【shì】是【shì】否动态连接,如【rú】果列出libtest.so,那么应该是连接正常了)
(-L.:表示要连接的库在当前目录中)
(-ltest:编【biān】译器查找动态连接库时有【yǒu】隐含的命名规则,即在给出的名字前面加上lib,后面【miàn】加上.so来确定【dìng】库的名称)
命令:$ ldd test
(注:执行test,可以看到它是如何调用动态库中的函数的。)
.so文件是Linux下【xià】的程序函数库【kù】,即编译好的【de】可【kě】以供其他程序使用的代【dài】码和【hé】数据linux下何谓.so文件:1.用过windows的同学应该都知道.dll文件吧【ba】,这【zhè】二者有什么共通之处呢,其实.so文件就跟.dll文件差不多.//2.一般来说.so文件