我正在尝试将C ++库导入Go应用程序。
据说Go可以链接到C ++文件......或者至少是Go Doc所说的(我正在使用Go 1.3。)我不认为它认为它是C ++,但我真的不太懂C ++所以我不确定发生了什么。
似乎在说它不承认<string>
是C ++包含的。
它给我的编译错误是:
# go build test.go
# command-line-arguments
In file included from api-main-binarize.cc:14:0,
from ./test.go:4:
doc-binarize.h:15:19: fatal error: string: No such file or directory
#include <string>
^
compilation terminated.
我的test.go文件看起来像这样:
package main
/*
#include "api-main-binarize.cc"
*/
import "C"
func Threshold(infile, outfile string) {
C.threshold(C.char(infile), C.char(outfile))
}
func main() {
Threshold(`test.jp2`, `test.pbm`)
}
任何想法如何使这项工作?
答案 0 :(得分:2)
你不能,你必须使用swig(在1.4上打破)或为你的C ++代码编写C包装器。
检查https://stackoverflow.com/a/1721230答案以获得更长的解释。