首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从cpabe源码编译cpabe包链接gmp出错

从cpabe源码编译cpabe包链接gmp出错
EN

Stack Overflow用户
提问于 2013-06-29 04:41:47
回答 3查看 3.8K关注 0票数 8

我最终花了几个小时从Ubuntu 12.10的源代码编译cpabe包,带有gmp和pbc依赖项。以下错误消息似乎是Web中许多人的问题(甚至对于编译其他需要安装libgmp作为依赖项的包也是如此!)。然而,我找不到任何可行的解决方案:

代码语言:javascript
复制
...
/usr/bin/ld: /usr/local/lib/libpbc.so: undefined reference to symbol '__gmpz_init'
/usr/bin/ld: note: '__gmpz_init' is defined in DSO /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libgmp.so so try adding it to the linker command line
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libgmp.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-04 05:58:42

对于您中的一些人来说,这可能是微不足道的,但是policy_lang.y在第67行中缺少一个分号,因此编译失败,并显示以下信息:

代码语言:javascript
复制
 policy_lang.y: In function ‘yyparse’:
 policy_lang.y:67:38: error: expected ‘;’ before ‘}’ token
 result: policy { final_policy = $1 }

可以通过将67行更改为

代码语言:javascript
复制
 result: policy { final_policy = $1; }
票数 5
EN

Stack Overflow用户

发布于 2013-07-02 09:05:11

添加lgmp是必要的,但也需要链接所有其他使用过的库。最后,我在发出make命令的同时在LDFLAGS环境变量中指定了这些库,从而解决了这个问题。因此,在安装gmp、pbc、bswabe或任何其他所需的依赖项后,编译步骤如下:

  • ./configure -with-pbc-include=path -with-pbc-lib=path (安装pbc.h和libpbc的路径)
  • make LDFLAGS="-lgmp -lpbc -lcrypto -L/usr/lib/x86_64-linux-gnu -lglib -lbswabe -lgmp"
  • make install
票数 3
EN

Stack Overflow用户

发布于 2013-06-29 10:34:48

尝试将其添加到链接器命令行

您是否尝试按照错误提示将-lgmp添加到链接命令行中?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17373306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档