如何在 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
我正在尝试 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