我正在尝试在系统上构建Wikiprep实用程序。构建实用程序后,无法构建Splitwiki实用程序。 make安装说明是



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的。我曾希望在构建wikiprep时使用“ 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指令是”。因此,您似乎已获得-lz开关。通常,我会说安装zlib,但是我有点困惑,因为您没有得到'/ usr / bin / ld:找不到-lz'作为错误消息。您确定要提供所有与splitwiki编译有关的日志输出吗?

关于c++ - Wikiprep实用程序。无法建立SplitWiki,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18083661/

10-13 09:31