Linux软硬链接和动静态库
warning:
这篇文章距离上次修改已过427天,其中的内容可能已经有所变动。
软硬链接和动态/静态库在Linux系统中都是常用的概念,下面是简要介绍和示例:
软链接(Symbolic Link):
创建软链接的命令是
ln -s,它创建的是一个符号链接,类似于Windows系统中的快捷方式。
ln -s /path/to/original /path/to/link硬链接(Hard Link):
创建硬链接的命令是
ln,没有-s参数。硬链接会创建一个新的文件名指向同一个文件数据。
ln /path/to/original /path/to/link动态库(Dynamic Library):
在Linux中,动态库通常以
.so(Shared Object)结尾,例如libexample.so。在编译时,只有在运行时才会将程序与动态库链接。静态库(Static Library):
静态库以
.a结尾,例如libexample.a。在编译时,静态库的内容会被直接复制到程序中,程序运行时不再依赖静态库。
创建动态库的例子:
// example.c
int add(int a, int b) {
return a + b;
}编译为动态库:
gcc -shared -o libexample.so example.c创建静态库的例子:
ar rcs libexample.a example.o在这里,example.o 是通过 gcc -c example.c 从 example.c 源文件生成的目标文件。
评论已关闭