前情提要
假如我们需要通过源码安装的方式,安装一个动态库。那么风格往往是这样的:
# 克隆仓库
git clone https://github.com/xxx.git
# 进入仓库目录
cd xxx
编译
# ... 可能有一些校验代码完整性的sh命令
# 构建
mkdir build
cd build
cmake ..
# 编译
make -j$(nproc)
安装
sudo make install
卸载
sudo make uninstall
现在有个关键问题:
想要预先知道 sudo make install 会往系统中安装什么。比如 sudo make install 接下来可能破坏系统中的一些库依赖关系,又或者其他一些安全考虑。当然,如果是一名开发者,也不一定会将动态库安装到/usr/local/lib
这样的路径下,可能只是放在某个项目中,由 CMake 指定的规则进行构建。
一种办法是直接查看 makefile 文件,查找install
关键字。makefile 可能是生成的,大型项目的 makefile 往往很复杂。
我们可以先创建一个临时文件夹
mkdir ~/xxx_install
cd ~/xxx
make DESTDIR=~/xxx_install install
make install 之后,我们可能获得如下结构

lib 中可以查看即将安装的库。
