开发者

Compilation problem in tokyo cabinate C program

i am new to tokyo cabinet and i have installed it and i have run the example c program i am getting error... while i compile with 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

can a开发者_C百科ny one tell me what is the issues with this...


Yes, you will almost certainly have to link with the library files for Tokyo Cabinate (whatever that is).

Typically, you would use a command like:

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

where:

  • -L specifies search paths for libraries.
  • -l lists libraries to search for undefined symbols.

and the linker will go looking for the libraries, following certain rules for turning xyz into a file name like libxyz.so.

In fact, a search of the net turns up this (on one line, I'm just splitting it for readability):

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

as the command line to use.

so I would suggest that you need for your specific case (again, on one line):

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜