如何在 C 项目中使用 WordNet?

How to use WordNet in a C project?

我正在尝试 link 到 WordNet 库。我从WordNet下载了头文件(wn.h)、libWN.a文件和一堆.o文件(libWN_a-search.o等)。我将 main.c、wn.h 和 libWN.a 文件放在一个文件夹中并实现了 main.c:

#include <stdio.h>
#include "wn.h"

int main(int argc, char *argv[]) {
  char rc, *s; 

  s = "cat";
  rc = in_wn(s, ALL_POS);
  printf("rc: %d\n", rc);
  return 0;
}

我尝试使用 cc main.c -L. 进行编译,但我收到 linker 错误:

/usr/bin/ld: /tmp/ccvzqY4x.o: in function `main':
main.c:(.text+0x27): undefined reference to `in_wn'
collect2: error: ld returned 1 exit status

可以找到有关 WordNet 库的文档 here。我只是不确定我做错了什么。

包含 wn.h 头文件是不够的。 .h 文件仅包含 声明 ,但实际实现包含在库文件 libWN.a 中,您未能 link 使用它。

对于 link 使用该库,您需要通过添加 -lWN:

告诉编译器这样做
cc main.c -L. -lWN