Невозможно включить необходимые заголовочные файлы C для программы go

Я пытаюсь включить файл заголовка, который существует в /usr/local/WordNet-3.0/include/, в мою программу go

используя эти флаги

// #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.

Буду признателен за любую помощь в том, что я делаю неправильно.

РЕДАКТИРОВАТЬ: я заставил это работать, скопировав файл в свой рабочий каталог, но мне все равно хотелось бы знать, что я делал неправильно.


person Sachin Anand    schedule 04.10.2015    source источник


Ответы (1)


Провел быстрый тест на моем локальном компьютере: вам нужно удалить пустую строку между вашими флагами 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"
)
person HectorJ    schedule 04.10.2015