Я пытаюсь собрать утилиту Wikiprep в моей системе. Хотя я создал утилиту, я не могу собрать утилиту Splitwiki. Инструкция по установке
splitwiki: splitwiki.c
gcc -Wall -O2 -lz -o $@ $<
Я получаю следующие сообщения об ошибках при выполнении:
/tmp/ccXeAIs1.o: In function `split':
splitwiki.c:(.text+0xac): undefined reference to `gzputs'
splitwiki.c:(.text+0xe3): undefined reference to `gzputs'
/tmp/ccXeAIs1.o: In function `main':
splitwiki.c:(.text.startup+0xab): undefined reference to `gzopen'
splitwiki.c:(.text.startup+0x10c): undefined reference to `gzclose'
collect2: ld returned 1 exit status
make: *** [splitwiki] Error 1
Мне почему-то кажется, что я скучаю по некоторым другим пакетам, хотя я не уверен в этом.
Ваша помощь очень ценится. Благодарю.
gzputs () является частью zlib. Вы, вероятно, не ссылаетесь на zlib.
На данный момент мне интересно, как вы создаете splitwiki. Я бы ожидал, что он будет построен с ‘make && make install ‘при сборке википреп. В моем случае это не так. Можете ли вы дать командную строку, которую вы используете для создания splitwiki и всего вывода?
Обновить: У меня работает следующее:
$ cd tools/splitwiki
$ make splitwiki LOADLIBES=-lz
cc splitwiki.c -lz -o splitwiki # this is make output
$
Объяснение: Я не смог найти какую-либо часть обработки Makefile или какую-либо часть объяснения README или указания, как собрать splitwiki. Я предполагаю, что нужно просто сделать это вручную, и именно так вы пытались это сделать. Вероятно, вам не хватало ‘-lz’ (ссылка на zlib). Вы могли бы использовать
cc splitwiki.c -lz -o splitwiki
непосредственно. Использование make — единственный способ вызвать компилятор :-).
Обновление 2Извините, вчера я, кажется, пропустил часть вопроса о том, что «инструкция make install is». Итак, вы, кажется, получили ключ -lz. Нормально я бы сказал, установить zlib, но я немного запутался, что вы не получите ‘/ usr / bin / ld: not find -lz’ в качестве сообщения об ошибке. Вы уверены, что даете весь вывод журнала, относящийся к компиляции splitwiki?
Других решений пока нет …