ubuntu安装pbc库

ubuntu安装pbc库

pbc中的gmp库和pbc库下载链接如下:

pbc下载
密码:gh40

1.安装gcc库

首先查看一下是否安装gcc库,若没有安装则无法运行c语言代码

gcc -v

运行上述指令若是没有弹出版本号,则需要安装gcc库

进入管理员账号后再进行安装gcc库

# 进入管理员账号命令
sudo su # 输入命令后再输入开机密码即可进入root用户

gcc安装指令:

sudo apt install gcc

image

安装好之后再使用下列命令查看是否成功

成功的话会显示gcc的版本号

gcc -v

image

2.下载依赖库:m4、flex、bison

sudo apt-get update 
sudo apt-get install m4
sudo apt-get install flex
sudo apt-get install bison

image

image

image

3.安装gmp库

下载地址https://gmplib.org/
解压并安装

gmp-6.3.0.tar.xz这个文件

命令如下:

# 解压gmp压缩包
tar xvJf gmp-6.3.0.tar.xz

image

image

进入gmp目录并运行configure文件

ls # 查看当前目录下的文件
cd gmp-6.3.0 # 进入gmp-6.3.0这个目录
ls # 查看当前目录下的文件,并找到configure这个文件

# 执行configure这个文件
./configure

image

image

没有make需要安装make

make
make check
apt install make
make -v # 查看make版本

image

image

image

4.安装pbc库

安装好下面操作后需要回到Desktop那个目录

下载地址http://crypto.stanford.edu/pbc/download.html

下载并解压下面这个文件

pbc-1.0.0.tar.gz

命令如下:

# 返回上一级目录
cd ..
# 解压pbc压缩包
tar -xzvf pbc-0.5.14.tar.gz

# 进入pbc-0.5.14目录
cd pbc-0.5.14
ls # 查看当前目录文件

# 执行configure文件
./configure

image

image

image

安装make

make
make check
sudo make install

image

image

image

pbc库中make库无法安装问题

问题是找不到 gmp库

image

解决方法

/usr/local/lib 写进系统默认搜索路径,一次配置,永久生效

# 1. 让动态链接器认识 /usr/local/lib
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/gmp.conf
sudo ldconfig

# 2. 让 pkg-config 认识
echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:\$PKG_CONFIG_PATH" >> ~/.bashrc
source ~/.bashrc

image

再进 pbc 目录:

./configure
make
sudo make install

image

image

一键验证是否找到 GMP
pkg-config --modversion gmp

如果能输出版本号(例如 6.3.0),就说明路径已正确,再 ./configure 一定不会报 “gmp library not found”。

image

5.验证pbc是否装成功

首先执行下面的指令建立文件夹和c语言文件

# 创建新目录
mkdir -p code 
# 查看当前目录文件
ls
# 进入code目录
cd code

# 创建C语言文件
nano test.c

test.c文件中写入下面代码

#include<pbc/pbc.h>
int main(void)
{
    printf("pbc test\n");
    return 0;
}

写完代码后按 Ctrl+X 退出程序

image

# 编译
gcc test.c -o test

# 运行
./test

image

引用pbc库报错

image

解决方法

新建.conf文件

cd /etc/ld.so.conf.d
sudo vi libpbc.conf

在文件中添加路径

/usr/local/lib

刷新cache

sudo ldconfig

image

以上都改好了可能还会像我一样报错,就在修改

gcc test.c -lgmp -lpbc -I/usr/local/include/pbc -o test

再运行test.c程序就没有问题了
image

全局设置pbc

  1. 把头文件目录软链到系统默认 include

    sudo ln -s /usr/local/include/pbc /usr/include/pbc
    
  2. 把库文件目录写进系统 linker 配置

    echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/pbc.conf
    sudo ldconfig
    

image

3.测试

把测试命令换成 带 main 的空程序即可:

gcc -x c - -lpbc -lgmp -o /dev/null <<<'int main(void){ return 0; }' && echo OK

只要终端输出:

OK

就说明:

  1. 头文件目录已全局可见
  2. 库文件目录已全局可见
  3. 链接器能找到 libpbc.solibgmp.so

image

注:在引入头文件时注意加上路径pbc/pbc.h

#include<pbc/pbc.h>
int main()
{
  printf("pbc 功能测试\n");
  return 0;
}

image

posted @ 2025-10-02 16:47  小西贝の博客  阅读(27)  评论(0)    收藏  举报