Проблема компиляции в токийской программе Cateate Cateate - PullRequest
0 голосов
/ 24 августа 2010

Я новичок в кабинете Токио, и я установил его, и я запустил программу c примера, я получаю ошибку ... пока я компилирую с gcc

gcc -O tcadbex.c 

/tmp/cc7IEOht.o: In function `main':
tcadbex.c:(.text+0xd): undefined reference to `tcadbnew'
tcadbex.c:(.text+0x1f): undefined reference to `tcadbopen'
tcadbex.c:(.text+0x58): undefined reference to `tcadbput2'
tcadbex.c:(.text+0x74): undefined reference to `tcadbput2'
tcadbex.c:(.text+0x90): undefined reference to `tcadbput2'
tcadbex.c:(.text+0xc1): undefined reference to `tcadbget2'
tcadbex.c:(.text+0x10e): undefined reference to `tcadbiterinit'
tcadbex.c:(.text+0x11c): undefined reference to `tcadbget2'
tcadbex.c:(.text+0x156): undefined reference to `tcadbiternext2'
tcadbex.c:(.text+0x164): undefined reference to `tcadbclose'
tcadbex.c:(.text+0x18d): undefined reference to `tcadbdel'
collect2: ld returned 1 exit status

Может кто-нибудь сказать мне, что проблемы с этим ...

1 Ответ

1 голос
/ 24 августа 2010

Да, вам почти наверняка придется связываться с библиотечными файлами для Tokyo Cabinate (что бы это ни было).

Как правило, вы будете использовать команду типа:

gcc -o tcadbex -L/usr/lib -lxyz tcadbex.c

где:

  • -L указывает пути поиска для библиотек.
  • -l перечисляет библиотеки для поиска неопределенных символов.

и компоновщик будет идтиищем библиотеки, следуя определенным правилам для превращения xyz в имя файла, такое как libxyz.so.

На самом деле, поиск в сети поднимает this (в одну строку,Я просто делю его для удобства чтения):

gcc -I/usr/local/include tc_example.c -o tc_example
    -L/usr/local/lib -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc

в качестве командной строки для использования.

, поэтому я хотел бы предложить, что вам нужно для вашего конкретного случая (опять же, в одной строке):

gcc -I/usr/local/include tcadbex.c -o tcadbex
    -L/usr/local/lib -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc
...