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
精彩评论