我正在嘗試使用從IRIS網站下載的庫。 makefile包含用於創建動態和靜態庫的選項。我已經嘗試了兩種使用cgo類型的庫的教程,但是我一直沒有成功。在Go程序中使用C代碼時未聲明的標識符
這裏是我的Go代碼
package main
/*
#cgo CFLAGS : -I .
#cgo LDFLAGS: -L . -llibslink
#include <libslink.h>
*/
import (
"C"
)
func main() {
C.sl_newslcd()
}
而且我在目錄中有下列文件:
ChangeLog config.o globmatch.o logging.c slplatform.c strutils.c
Makefile doc gswap.c logging.o slplatform.h strutils.o
Makefile.wat example gswap.o main.go slplatform.o unpack.c
Makefile.win genutils.c libslink.2.4.dylib msrecord.c slutils.c unpack.h
README genutils.o libslink.a msrecord.o slutils.o unpack.o
README.md globmatch.c libslink.dylib network.c statefile.c
config.c globmatch.h libslink.h network.o statefile.o
我的錯誤消息的命令如下:go build -v main.go
command-line-arguments
# command-line-arguments
37: error: use of undeclared identifier 'SLCD'
37: error: use of undeclared identifier 'sl_newslcd'
您是否嘗試過'去build',而不是'去建立-v main.go'?你知道cgo也會爲你編譯所有的C文件嗎? – fuz 2014-10-10 22:46:59
我得到與上面相同的錯誤。 – kns 2014-10-11 00:42:35