参考1:http://zhidao.baidu/link?url=Zx0t6DMIpPvMNhIKZEudJOmDR4MXcr-B5_KbELCIoNz1jnJ7A_--J-qIaiVkYIi0FPqIY-lUIcuRA6NEWHK9aK

在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library)。这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个 执行程序间共享,节省了空间,提高了效率,具备很高的灵活性。同样,LINUX的也具备类似的动态链接库,而且为数不少。在/lib目录下,就有许多以.so作后缀的文件,这就是LINUX系统应用的动态链接库,只不过与WINDOWS叫法不同,它叫so,即Shared Object,共享对象。(在LINUX下,静态函数库是以.a作后缀的) X-WINDOW作为LINUX下的标准图形窗口界面,它本身就采用了很多的动态链接库(在/usr/X11R6/lib目录下),以方便程序间的共享, 节省占用空间。flash只是一个插件,在windows中就是一个ocx的链接库方式(和dll略有不同),因此linux中一旦你了一个共享函数库,你还需要安装它。其实简单的方法就是拷贝

你的库文件到指定的标准的目录(例如/usr/lib),然后运行ldconfig。

如果你没有权限去做这件事情,例如你不能修改/usr/lib目录,那么

你就只好通过修改你的环境变量来实现这些函数库的使用了。首先,

你需要创建这些共享函数库;然后,设置一些必须得符号链接,特别

是从soname到真正的函数库文件的符号链接,简单的方法就是运行ldconfig:

ldconfig -n directory_with_shared_libraries

然后你就可以设置你的LD_LIBRARY_PATH这个环境变量,它是一个以逗号

分隔的路径的集合,这个可以用来指明共享函数库的搜索路径。例如

,使用bash,就可以这样来

启动一个程序my_program:

LD_LIBRARY_PATH=.LD_LIBRARY_PATH my_program

参考2:http://blog.csdn/nieyinyin/article/details/6890557

Linux下的.so是基于Linux下的动态链接,其功能和作用类似与windows下.dll文件。

下面是关于.so的介绍:

一、引言

通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray),通常文件名为“libxxx.a”的形式。

其实,我们也可以把对一些库函数的链接载入推迟到程序运行的时期(runtime)。这就是如雷贯耳的动态链接库(dynamic link library)技术。

更多推荐

linux下后缀为so的文件怎么打开,linux中.so后缀的文件怎么使用啊