Токийский кабинет не компилируется на Cygwin - PullRequest
0 голосов
/ 29 января 2011

Я совершенно новичок в Cygwin и пытаюсь скомпилировать токийский кабинет. Я получаю следующую ошибку и не могу понять, почему у меня этот конфликт. Может ли кто-нибудь мне помочь?

Спасибо

$ make
gcc -c -I. -I/usr/local/include -I/home/Larry/include -I/usr/local/include -DND
EBUG -D_GNU_SOURCE=1 -D_REENTRANT -D__EXTENSIONS__ -D_TC_PREFIX="\"/usr/local\""
 -D_TC_INCLUDEDIR="\"/usr/local/include\"" -D_TC_LIBDIR="\"/usr/local/lib\"" -D_
TC_BINDIR="\"/usr/local/bin\"" -D_TC_LIBEXECDIR="\"/usr/local/libexec\"" -D_TC_A
PPINC="\"-I/usr/local/include\"" -D_TC_APPLIBS="\"-L/usr/local/lib -ltokyocabine
t -lbz2 -lz -lrt -lpthread -lm -lc \"" -g -O2 -std=c99 -Wall -fPIC -fsigned-char
 -O2 tcutest.c
tcutest.c:1: warning: -fPIC ignored for target (all code is position independent
)
tcutest.c:31: error: conflicting types for 'iprintf'
/usr/include/stdio.h:259: error: previous declaration of 'iprintf' was here
make: *** [tcutest.o] Error 1

1 Ответ

3 голосов
/ 29 января 2011

Вид раздражает. Глобально переименуйте iprintf в my_iprintf или что-то подобное. У меня нет Cygwin, но я просто попробовал на Linux, и это сработало хорошо:

$ sed -i.bak 's/iprintf/my_iprintf/g' *.c *.h bros/*.c
$ ./configure
... blah blah configuring blah blah ...
#================================================================
# Ready to make.
#================================================================
$ make
... blah blah building blah blah ...
#================================================================
# Ready to install.
#================================================================
$ ./tctmgr --version
Tokyo Cabinet version 1.4.46 (909:1.0) for Linux
Copyright (C) 2006-2010 FAL Labs

IIRC cygwin имеет GNU coreutils, который включает sed, но с тех пор, как я его использовал, прошло довольно много времени. Подсказка: держите тарбол, чтобы вы могли заново распаковать его, если допустите ошибку, но команда sed также сохраняет резервные копии.

...