在编译bsdiff时,遇到如下错误:

fatal error: bzlib.h: No such file or directory

发现缺少 bzlib.h 头文件,原因是系统没有安装libbz2库

最简单方法:

在ubuntu下最简单的方法是使用apt命令安装

sudo apt-get install libbz2-dev

手动编译:

但是我使用的账户没有安装权限,只能自己手动编译

下面是具体步骤:

1.下载bzip2源码

下载地址:http://www.bzip.org/downloads.html

2.安装头文件

当前bzip2最新的版本时1.0.6,下载完成后首先解压源码包

tar -xzvf bzip2-1.0.6.tar.gz

将其中的bzlib.h头文件复制进/usr/include或者自定义的include路径
比如我因为没有安装权限,所以直接放置在当前路径

#include <bzlib.h>

改为

#include "bzlib.h"

这时候还要编译动态库,否则报错:

/usr/bin/ld: cannot find -lbz2

3.编译动态库

进入解压后的目录:

cd bzip2-1.0.6

配置编译为动态库:

make -f Makefile-libbz2_so

编译&&安装:

make && make install

实际上还是因为没有安装权限,我最终编译出来的库是使用gcc的-L参数才完成bsdiff编译的,这里不做细表。

4.Enjoy

linux下如何手动编译安装bzip2库
Tagged on:     

发表评论

邮箱地址不会被公开。 必填项已用*标注