c++ - 链接外部库时出错

标签 c++ c linux ubuntu ubuntu-12.04

我从 http://grid.hust.edu.cn/triplebit/TripleBit.tar.gz 下载了 TripleBit 的源代码. 它要求我安装两个库:

i)  boost-1.39.0.tar.gz
ii) raptor-1.4.21.tar.gz

我使用 :

安装它们
sudo apt-get install libboost-dev
sudo apt-get install libraptor-dev

但是,在我进入 TripleBit 的目录并运行“make”之后。我出现以下错误:

/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:38: undefined reference to `raptor_init'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:39: undefined reference to `raptor_new_parser'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:40: undefined reference to `raptor_set_statement_handler'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:42: undefined reference to `raptor_uri_filename_to_uri_string'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:43: undefined reference to `raptor_new_uri'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:44: undefined reference to `raptor_uri_copy'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:45: undefined reference to `raptor_parse_file'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:47: undefined reference to `raptor_free_parser'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:48: undefined reference to `raptor_free_uri'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:49: undefined reference to `raptor_free_uri'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:50: undefined reference to `raptor_free_memory'
/home/TripleBit/BuildTripleBitFromRDF/BuildTripleBit.cpp:52: undefined reference to `raptor_finish'
collect2: ld returned 1 exit status
make: *** [bin/lrelease/buildTripleBitFromRDF] Error 1

驻留在/usr/local/lib 中的库文件是:

libboost_filesystem.so, libraptor.a, libraptor.la, libraptor.so, libraptor.so.1 
and libraptor.so.1.2.0

/usr/lib 中的文件还有:

libraptor.a, libraptor.la, libraptor.so, libraptor.so.1, libraptor.so.1.2.0, 
libraptor2.so.0, libraptor2.so.0.0.0, librasqal.so.3, librasqal.so.3.0.0, librdf.so.0, 
librdf.so.0.0.0, librest-0.7.so.0, librest-0.7.so.0.0.0.

谁能帮我找出错误。

我在 ubuntu 12.04 上运行

最佳答案

查看 TripleBit Makefile。您缺少 -lraptor 链接器选项。此条目应由 raptor-config --libs 返回。 您还可以针对 libraptor.a 文件运行 nm 工具,并检查它是否未使用 RAPTOR_DISABLE_V1 选项编译。

关于c++ - 链接外部库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18881307/

相关文章:

c++ - 使用指令 C++ 实现

linux - 无法理解 setuid/setgid

java - Java 中的 Linux PAM 模块

c - F_SETPIPE_SZ 未声明

c++ - 使用未知指针类型调用函数重载

c++ - struct 不能出现在常量表达式中;模板参数无效

c++ - 互斥实现和信号

c - 从 C 中的 *char[] 变量获取第一个字符

c - POSIX:glob() 只找到第一个匹配项

c++ - 循环遍历 vector 时将对象添加到 vector