静态函数库(static libraries)
静态函数库是在程序执行前就加入到目标程序中去了
静态函数库实际上就是简单的一个普通的目标文件的集合,一般来说习惯用".a"作为文件的后缀。
可以用ar这个程序来产生静态函数库文件。Ar 是archiver的缩写。
静态库函数允许程序员把程序link起来而不用重新编译代码,节省了重新编译代码的时间
静态函数库对开发者来说还是很有用的,例如你想把自己提供的函数给别人使用,
但是又想对函数的源代码进行保密,你就可以给别人提供一个静态函数库文件。
理论上说,使用ELF格式的静态库函数生成的代码可以比使用共享函数库(或者动态函数 库)的程序运行速度上快一些,
大概1-5%。
创建一个静态函数库文件,或者往一个已经存在地静态函数库文件添加新的目标代码,可以用下面的命令:
ar rcs my_library.a file1.o file2.o 把目标代码file1.o和file2.o加入到my_library.a这个函数库文件中
可以用“-l”参数来指定这个库函数。你也可以用ld来做,使用它的“-l”和“-L”参数选项
共享函数库(shared libraries)
共享函数库则是在程序启动的时候加载到程序中,它可以被不同的程序共享
共享函数库中的函数是在当一个可执行程序在启动的时候被加载。
如果一个共享函数库正常安装,所有的程序在重新运行的时候都可以自动加载最新的函数库中的函数。
o 升级了函数库但是仍然允许程序使用老版本的函数库。
o 当执行某个特定程序的时候可以覆盖某个特定的库或者库中指定的函数。
o 可以在库函数被使用的过程中修改这些函数库。
Soname名字命名必须以“lib”作为前缀,然后是函数库的名字,然后是“.so”,最后是版本号信息
/usr/lib/libreadline.so.3 是一个完全的完整的soname,ldconfig可以设置一个符号链接到其他某个真正的函数库文件,
例如是 /usr/lib/libreadline.so.3.0。同时还必须有一个链接名字,
例如/usr/lib/libreadline.so 就是一个符号链接指向/usr/li
静态函数库是在程序执行前就加入到目标程序中去了
静态函数库实际上就是简单的一个普通的目标文件的集合,一般来说习惯用".a"作为文件的后缀。
可以用ar这个程序来产生静态函数库文件。Ar 是archiver的缩写。
静态库函数允许程序员把程序link起来而不用重新编译代码,节省了重新编译代码的时间
静态函数库对开发者来说还是很有用的,例如你想把自己提供的函数给别人使用,
但是又想对函数的源代码进行保密,你就可以给别人提供一个静态函数库文件。
理论上说,使用ELF格式的静态库函数生成的代码可以比使用共享函数库(或者动态函数 库)的程序运行速度上快一些,
大概1-5%。
创建一个静态函数库文件,或者往一个已经存在地静态函数库文件添加新的目标代码,可以用下面的命令:
ar rcs my_library.a file1.o file2.o 把目标代码file1.o和file2.o加入到my_library.a这个函数库文件中
可以用“-l”参数来指定这个库函数。你也可以用ld来做,使用它的“-l”和“-L”参数选项
共享函数库(shared libraries)
共享函数库则是在程序启动的时候加载到程序中,它可以被不同的程序共享
共享函数库中的函数是在当一个可执行程序在启动的时候被加载。
如果一个共享函数库正常安装,所有的程序在重新运行的时候都可以自动加载最新的函数库中的函数。
o 升级了函数库但是仍然允许程序使用老版本的函数库。
o 当执行某个特定程序的时候可以覆盖某个特定的库或者库中指定的函数。
o 可以在库函数被使用的过程中修改这些函数库。
Soname名字命名必须以“lib”作为前缀,然后是函数库的名字,然后是“.so”,最后是版本号信息
/usr/lib/libreadline.so.3 是一个完全的完整的soname,ldconfig可以设置一个符号链接到其他某个真正的函数库文件,
例如是 /usr/lib/libreadline.so.3.0。同时还必须有一个链接名字,
例如/usr/lib/libreadline.so 就是一个符号链接指向/usr/li