未定义引用`gcry_check_version',有什么问题?

时间:2012-08-16 18:38:31

标签: build makefile cmake centos

cmake ..

使

然后无法建立。

错误信息如下:

[ 96%] Building C object src/gui/curses/CMakeFiles/weechat-curses.dir/gui-curses-color.o
[ 97%] Building C object src/gui/curses/CMakeFiles/weechat-curses.dir/gui-curses-key.o
[ 97%] Building C object src/gui/curses/CMakeFiles/weechat-curses.dir/gui-curses-main.o
[ 98%] Building C object src/gui/curses/CMakeFiles/weechat-curses.dir/gui-curses-mouse.o
[ 99%] Building C object src/gui/curses/CMakeFiles/weechat-curses.dir/gui-curses-term.o
[100%] Building C object src/gui/curses/CMakeFiles/weechat-curses.dir/gui-curses-window.o
Linking C executable weechat-curses
../../core/libweechat_core.a(wee-network.o): In function `network_init':
wee-network.c:(.text+0x1c): undefined reference to `gcry_check_version'
wee-network.c:(.text+0x30): undefined reference to `gcry_control'
wee-network.c:(.text+0x44): undefined reference to `gcry_control'
collect2: ld returned 1 exit status
make[2]: *** [src/gui/curses/weechat-curses] Error 1
make[1]: *** [src/gui/curses/CMakeFiles/weechat-curses.dir/all] Error 2
make: *** [all] Error 2

我的操作系统是centos 5.3,为了成功构建这个软件,我应该暂停哪个包?

3 个答案:

答案 0 :(得分:1)

显然,您正在尝试链接可执行文件,缺少libgcrypt库。

请参阅http://www.gnu.org/software/libgcrypt/

答案 1 :(得分:0)

我有同样的问题并发现了这一点。由于我正在使用代码块,我发现:

  • 转到设置>编译器和调试器
  • 链接器设置
  • 由于已经安装了库 - >添加以下链接库:
  • /usr/local/lib/libgpg-error.so
  • /usr/local/lib/libgcrypt.so

这修复了编译错误。 :)

答案 2 :(得分:0)

在Ubuntu 15.04上,libgcrypt.h安装在/ usr / include(由存储库包)中,我只需要更改编译器设置。这应该适用于Ubuntu 14.04 / 14.10,可能还有其他Debian。

我在Code :: Blocks上,所以我的指示就是为了这个。有关详细信息,请参阅the documentation

  1. 转到设置 - >编译器...... - >全局编译器设置
  2. 在“编译器设置”选项卡上,单击“其他选项”,然后在其中放置'libgcrypt-config --cflags\''实际上应该是一个反引号,但是SO有奇怪的格式.. 。)
  3. 在“链接器设置”选项卡的“其他链接器选项:”下,在顶部放置'libgcrypt-config --libs\'(再次使用反引号代替')。
  4. 单击“确定”并编译项目。