xinji4351 2017-05-06 08:12 采纳率: 0%
浏览 1853

ubuntu系统中c编译问题

程序如下:

 #include "/usr/local/include/pbc/pbc.h"
#include "/usr/local/include/pbc/pbc_test.h"
#include <stdio.h>
#include<string.h>
#include<time.h>



int main(int argc, char **argv) {
    pairing_t pairing;

    pbc_demo_pairing_init(pairing, argc, argv);


    double th1, th2, th_1, th_2, ta1, ta2, tm1, tm2, tm_1, tm_2, tp1, tp2, te1, te2;

    element_t x, x2, h;
    element_t P, H, P1, P2;
    element_t Q;


    element_init_Zr(x, pairing);
    element_init_Zr(x2, pairing);
    element_init_Zr(h, pairing);
    element_init_G1(P, pairing);
    element_init_G1(P1, pairing);
    element_init_G1(P2, pairing);
    element_init_G1(H, pairing);
    element_init_GT(Q, pairing);

    //hash到数
    th1 = pbc_get_time();
    element_from_hash(h, "message", 7);
    th2 = pbc_get_time();

    //hash到点
    th_1 = pbc_get_time();
    element_from_hash(P, "message", 7);
    th_2 = pbc_get_time();


    element_random(x);
    element_random(x2);
    element_random(P);
    element_random(P1);
    element_random(P2);
    element_random(H);

    //点加
    ta1 = pbc_get_time();
    element_add(P, P, H);
    ta2 = pbc_get_time();

    //数和点的乘法
    tm1 = pbc_get_time();
    element_mul_zn(P, P, x);
    tm2 = pbc_get_time();

    //点和点的乘法
    tm_1 = pbc_get_time();
    element_mul_zn(P, P1, P2);
    tm_2 = pbc_get_time();

    //对运算weil pairing
    tp1 = pbc_get_time();
    pairing_apply(Q, P1, P1, pairing);
    tp2 = pbc_get_time();

    //模幂运算modular expone
    te1 = pbc_get_time();
    element_pow_zn(H, P2, x2);
    te2 = pbc_get_time();


    printf("%f\t%f\t%f\t%f\t%f\t%f\t%f\n", th2-th1, th_2-th_1, ta2-ta1, tm2-tm1, tm_2-tm_1, tp2-tp1, te2-te1);


    //FILE *fp;
    //fp=fopen("data.txt", "a");

    //fclose(fp);

    element_clear(x);
    element_clear(P);
    element_clear(H);

    pairing_clear(pairing);

    return 0;
}

出现的问题如下:
/tmp/ccFHLNvf.o:在函数‘element_mul_zn’中:
main.c:(.text+0x110):对‘__gmpz_init’未定义的引用
main.c:(.text+0x146):对‘__gmpz_clear’未定义的引用
/tmp/ccFHLNvf.o:在函数‘element_pow_zn’中:
main.c:(.text+0x1ae):对‘__gmpz_init’未定义的引用
main.c:(.text+0x1e4):对‘__gmpz_clear’未定义的引用
/tmp/ccFHLNvf.o:在函数‘pbc_demo_pairing_init’中:
main.c:(.text+0x37c):对‘pbc_die’未定义的引用
main.c:(.text+0x3b4):对‘pbc_die’未定义的引用
main.c:(.text+0x3e0):对‘pairing_init_set_buf’未定义的引用
main.c:(.text+0x3f4):对‘pbc_die’未定义的引用
/tmp/ccFHLNvf.o:在函数‘main’中:
main.c:(.text+0x51a):对‘pbc_get_time’未定义的引用
main.c:(.text+0x53e):对‘pbc_get_time’未定义的引用
main.c:(.text+0x549):对‘pbc_get_time’未定义的引用
main.c:(.text+0x56d):对‘pbc_get_time’未定义的引用
main.c:(.text+0x5e4):对‘pbc_get_time’未定义的引用
/tmp/ccFHLNvf.o:main.c:(.text+0x60f): 跟着更多未定义的参考到 pbc_get_time
/tmp/ccFHLNvf.o:在函数‘main’中:
main.c:(.text+0x7d1):对‘pairing_clear’未定义的引用
collect2: error: ld returned 1 exit status
本人纯新手,完全不懂这是出什么问题了。还请详细回答,谢谢了!

  • 写回答

7条回答 默认 最新

  • xinji4351 2017-05-06 09:03
    关注

    顶顶顶!! 求大神解答啊~~

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置