2013-09-18 3 views
0

Я загрузил исходный код TripleBit с http://grid.hust.edu.cn/triplebit/TripleBit.tar.gz. Потребовалось мне установить две библиотеки:Ошибка при связывании внешних библиотек

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 и побежал «сделать». Я иду на следующие ошибки:

/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/местные/Библиотека являются:

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. 

Может кто-то, пожалуйста, помогите мне узнать об ошибке.

Я побежал на убунту 12,04

ответ

1

Посмотрите в TripleBit Makefile. У вас отсутствует опция -lraptor linker. Эта запись должна быть возвращена raptor-config -libs. Вы также можете запустить nm tool против файла libraptor.a и проверить, не был ли он скомпилирован с параметром RAPTOR_DISABLE_V1.

1

Посмотрите в Makefile TripleBit, вы можете удалить «BuildTripleBitFromRDF» в строке 82 (modules: = ..), чтобы вы могли избежать ошибок, но «BuildTripleBitFromRDF» не будет встраиваться в исполняемые файлы. Поэтому, когда загружаемый набор данных представляет собой набор данных RDF, вы можете использовать raptor для преобразования набора данных RDF в набор данных N3, а затем использовать инструмент buildTripleBitFromN3 для продолжения. Вероятная проблема - неправильная установка в raptor.

Смежные вопросы