因为这个,我正在拔头发。
我想要做的就是将 .o(C 目标文件)与 Go 包链接起来,以便 Go 包可以调用 C 函数。
似乎没有关于CGO_OFILEScgo 参数的任何文档,这似乎是我经过大量互联网搜索后所需要的。
我试过把它放在 Go 文件的顶部:
/*
#cgo CGO_OFILES: doc-capi-tesseract.o
#include <stdlib.h>
#include "doc-capi-tesseract.h"
*/
import "C"
但这给了我错误invalid #cgo verb: #cgo CGO_OFILES: doc-capi-tesseract.o。然后我在某处读到可以使用makefile,所以我制作了这个可能不正确的makefile:
include $(GOROOT)/src/Make.inc
TARG=tesseract
CGOFILES=tesseract.go
CGO_OFILES=doc-capi-tesseract.o
include $(GOROOT)/src/Make.pkg
%.o: %.cpp
$(HOST_CC) $(CGO_CFLAGS_$(GOARCH)) -g -O2 -fPIC -o $@ -c $^
但我不知道如何处理该文件。如果我运行makeormake myfile或 ,则不会发生任何事情go build makefile。不知道如何使用它。
有人可以向我解释如何将 Go 文件链接到 C 目标文件吗?
一只萌萌小番薯
小唯快跑啊
相关分类