在Linux系统中,.so
文件是共享库(Shared Object)文件的扩展名。共享库是一种动态链接库,它允许多个程序共享同一份代码和数据,从而节省内存和提高执行效率。当一个程序需要使用共享库中的函数时,操作系统会在运行时动态地将这些函数加载到内存中。
共享库主要分为两种类型:
共享库广泛应用于各种需要复用代码的场景,例如:
.so
文件假设你有一个名为 libexample.so
的共享库文件,并且你想在一个C程序中使用它。以下是一个简单的示例:
// main.c
#include <stdio.h>
// 声明外部函数
extern void hello_from_so();
int main() {
printf("Hello from main program!\n");
hello_from_so();
return 0;
}
// example.c
#include <stdio.h>
void hello_from_so() {
printf("Hello from shared library!\n");
}
注意:-L.
表示在当前目录下查找共享库,-lexample
表示链接 libexample.so
库。
在运行程序之前,需要确保操作系统能够找到共享库。可以通过设置 LD_LIBRARY_PATH
环境变量来实现:
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
./main
找不到共享库
的错误,可以检查 LD_LIBRARY_PATH
是否正确设置,或者将共享库复制到系统默认的库路径(如 /usr/lib
或 /usr/local/lib
)。ldd
命令查看共享库的依赖关系:ldd
命令查看共享库的依赖关系:希望以上信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云