猿问

无法为 go 程序包含所需的 C 头文件

我试图在我的 go 程序中包含一个存在于 /usr/local/WordNet-3.0/include/ 中的头文件


使用这些标志


// #cgo CFLAGS: -I/usr/local/WordNet-3.0/include

// #cgo LDFLAGS: /usr/local/WordNet-3.0/lib/libWN.3.dylib


/*

 #include <stdio.h>

 #include <stdlib.h>

 #include <string.h>

 #include "wn.h"


static void printlicense() {

    printf("WordNet License %s\n\n%s", dblicense, license);

}

*/

import "C"

import "unsafe"

import (

        "os"

)

但是当我使用 go run 运行我的程序时,它给了我以下错误:


“致命错误:未找到‘wn.h’文件。” 我在路上 1.5.1。


对我做错了什么的任何帮助将不胜感激。


编辑:我通过将文件复制到我的工作目录中来使其工作,但我仍然想知道,我做错了什么。


汪汪一只猫
浏览 217回答 1
1回答

人到中年有点甜

在我的本地做了一个快速测试:你需要删除你的 cgo 标志和你的 C 代码之间的空行。尝试这个 :// #cgo CFLAGS: -I/usr/local/WordNet-3.0/include// #cgo LDFLAGS: /usr/local/WordNet-3.0/lib/libWN.3.dylib/*&nbsp;#include <stdio.h>&nbsp;#include <stdlib.h>&nbsp;#include <string.h>&nbsp;#include "wn.h"static void printlicense() {&nbsp; &nbsp; printf("WordNet License %s\n\n%s", dblicense, license);}*/import "C"import "unsafe"import (&nbsp; &nbsp; &nbsp; &nbsp; "os")
随时随地看视频慕课网APP

相关分类

Go
我要回答