Linux中动态库和静态库的创建添加和试用
时间: 2024-09-27 19:05:14 浏览: 22
在Linux中,动态链接库(Dynamic Linked Library,简称DLL或so文件)和静态链接库(Static Linked Library,通常是一个.a文件)用于软件模块的组织和复用。
**动态库的创建(Building Dynamic Libraries)**:
1. 使用`gcc`或`g++`等编译器,通过 `-shared` 或 `--dynamic-library` 选项创建动态库。例如:
```
gcc -shared -o libexample.so source.c
```
这将编译源文件并生成libexample.so动态库。
**动态库的添加(Linking with Dynamic Libraries)**:
1. 在编译其他程序时,使用 `-l<library_name>` 指定依赖的动态库,如 `gcc main.cpp -L/path/to/library -lexample`。
2. 对于运行时动态加载,可以使用 `dlopen()` 函数加载库,`dlsym()` 查找函数并调用。
**静态库的创建(Building Static Libraries)**:
1. 使用相同的编译器,但加上 `-c` 创建目标文件,然后使用 `ar` 工具打包成 `.a` 文件,如 `ar rcs libexample.a object.o`.
**静态库的添加(Linking with Static Libraries)**:
1. 编译时直接指定静态库名 `-l<library_name>`, 如 `gcc main.cpp -lexample`。
2. 静态链接意味着库的内容会被复制到最终二进制文件中,这会增大程序大小但不会因为库变化而影响运行。
**试用库函数**:
无论是动态还是静态,都需要包含库头文件(`.h`),并在源代码中声明需要使用的函数。编译和运行时,系统会自动处理库的链接。