Linux下软硬链接和动静态库制作详解
在Linux下创建软硬链接和制作动态/静态库的步骤如下:
- 创建软硬链接:
ln -s target_file soft_link # 创建指向文件的软链接
ln target_file hard_link # 创建文件的硬链接
制作动态库(.so):
首先,编写源代码文件
lib.c
:
// lib.c
int add(int a, int b) {
return a + b;
}
然后,编译这个源代码文件,并创建动态库:
gcc -shared -o libmylib.so lib.c
制作静态库(.a):
同样,先编写源代码文件
lib.c
。然后,编译这个源代码文件,并创建静态库:
gcc -c lib.c
ar rcs libmylib.a lib.o
使用动态/静态库:
假设你有一个使用库中
add
函数的程序main.c
:
// main.c
int main() {
int result = add(2, 3);
printf("The result is %d\n", result);
return 0;
}
编译并链接这个程序时,使用动态库:
gcc main.c -lmylib -L. -o main
或者使用静态库:
gcc main.c libmylib.a -o main
运行生成的可执行文件:
./main
以上步骤中,-shared
用于创建动态库,-c
用于编译源代码但不链接,-o
用于指定输出文件名。-l
用于指定链接时要使用的库名(不包括前缀 lib
和后缀 .so
或 .a
),-L
用于指定库文件搜索路径。
评论已关闭