【20230204】make install安装到指定路径

文章介绍了三种在Linux中安装软件的方法,主要涉及使用autotools的项目。方法1是标准做法,设置prefix后执行configure、make和makeinstall。方法2可能导致libtool警告,需要额外的libtool--finish步骤。方法3提到非标准的使用prefix选项,但可能因项目不同而异,有时需要手动拷贝文件。

方法1

./configure --prefix=/your/dir
make
make install

这是使用autotools的项目比较标准的做法。

方法2

./configure
make
make install DESTDIR=/your/dir

说明:
这种方法libtool会因为之前"./configure"的“–prefix”参数与预期安装的目录不匹配而发出警告,例如以下打印:

libtool: warning: remember to run ‘libtool --finish /usr/local/lib’

libtool: warning: ‘…/xxx/xxx’ has not been installed in ‘/usr/local/lib’

这种警告提示在使用时需要执行libtool --finish /usr/local/lib来完成,所以正常情况下还是推荐使用第1种方法,第2种方法适合将程序安装到临时的目录下。

方法3

如果以上两种方法都不能解决需求,网上还有一些说法是编译安装的时候加上prefix或者PREFIX选项的:

make prefix=/your/dir
make install prefix=/your/dir

不过这种方法貌似不是标准的做法,至于能不能使用还是看具体的项目Makefile或进行简作修改,实在不行就逐个拷贝呗。

在编译 `libpcap` 源代码时,执行 `make` 和 `make install` 命令通常不需要额外添加 Bash 代码。`make` 命令会根据 `Makefile` 文件中的规则进行编译,而 `make install` 则会将编译好的文件安装到配置阶段指定路径中。如果系统环境已正确配置,并且依赖项已安装,则可以直接运行以下命令: ```bash make sudo make install ``` 上述命令已经足够完成编译和安装操作,不需要额外添加 Bash 代码[^1]。 然而,如果用户希望在执行 `make` 或 `make install` 时添加额外的控制逻辑(例如判断编译是否成功、输出日志信息、设置环境变量等),则可以使用 Bash 脚本增强操作的自动化程度。例如: ```bash #!/bin/bash if make; then echo "编译成功,开始安装" sudo make install else echo "编译失败" exit 1 fi ``` 此类 Bash 脚本适用于自动化构建流程或持续集成环境中,但在一般情况下并非必需[^2]。 ### 编译依赖与环境准备 在执行 `make` 前,必须确保已安装必要的开发工具和依赖库。例如,在基于 Red Hat 的系统上,可使用以下命令安装编译所需的依赖项: ```bash sudo yum groupinstall -y "Development Tools" sudo yum install -y libtool autoconf automake ``` 在基于 Debian 的系统上,可使用以下命令安装依赖: ```bash sudo apt install build-essential libtool autoconf automake ``` 这些依赖项是编译 `libpcap` 所需的,未安装可能导致 `configure` 或 `make` 失败[^3]。 ### 安装路径与动态链接库配置 如果使用 `./configure --prefix=/usr/local` 指定自定义安装路径安装完成后可能需要更新动态链接器缓存以确保系统能够识别新安装的库: ```bash sudo ldconfig ``` 该操作确保 `libpcap` 的共享库文件能够被正确加载和使用[^4]。 ### 验证安装结果 安装完成后,可以通过以下命令验证 `libpcap` 的版本: ```bash pkg-config --modversion libpcap ``` 如果输出为 `1.7.4`,则表示安装成功。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值