初识Linux · 动静态库(incomplete)

静态library.a直接将代码打包,并在编译时将其复制到可执行文件中。

动态library.so在编译时不打包,运行时从系统加载。

什么是 静态库是在编译期间合并的代码包。
动态库是在运行时加载的代码包。

为什么 静态库方便独立分发,无论系统是否有。
动态库节省磁盘空间并且可以被多个程序共享。

该怎么办 静态库: 1 .编写.c和.h文件。
2 .编译为.o文件。
3 、使用ar命令打包成.a文件。

使用时: -L指定路径,-l指定库名。
(例如:gcc test.c -L.-lmyc -o test)
动态库: 1 、编写一个.c文件。
2 、编译时添加-fPIC选项。
3 . 使用ld链接到.so文件。

使用时: 也用 -L 和 -l 指定。
确保运行时系统可以找到.so路径。
(例如:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.)
如何解决路径问题?

Linux ldconfig命令详解

ldconfig 是用于更新库链接和共享内存的 Linux 命令。
说白了就是动态链接库。

本质是三件事: 1 、分析配置文件 2 .创建符号链接 3 .生成缓存文件
常用选项: -n 直接查看缓存 -v 显示进程 -p 查看所有链接
上周我刚刚遇到了系统冻结问题。
我只是忘记运行 ldconfig。

安装新库后必须运行它。
如果不运行程序就无法找到该库。

需要root权限。
更改配置后尝试重新启动。

与 ldd 一起使用。
首先检查程序依赖关系。

linux mp4v2编译 默认生成动态库在哪

直接使用 -L 选项指定库路径。
项目:Linux 集合 时间:1 0年前 数量:至少2 个库
g++ -L/lib/ -la -lb hello.cpp -o hello
自己掂量一下。