无法为go程序

时间:2015-10-04 11:42:02

标签: go cgo

我正在尝试在我的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。

对我所做错的任何帮助都将不胜感激。

编辑:我通过在工作目录中复制文件来实现这一点,但我仍然想知道我做错了什么。

1 个答案:

答案 0 :(得分:5)

对我的本地进行了快速测试:您需要删除cgo标记和C代码之间的空白行。

试试这个:

// #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"
)