Linux软硬链接和动静态库
软硬链接和动态/静态库在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
源文件生成的目标文件。
评论已关闭