Go:使用C ++库:错误包括<string> </string>

时间:2014-10-03 04:38:20

标签: c++ go

我正在尝试将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`)
}

任何想法如何使这项工作?

1 个答案:

答案 0 :(得分:2)

你不能,你必须使用swig(在1.4上打破)或为你的C ++代码编写C包装器。

检查https://stackoverflow.com/a/1721230答案以获得更长的解释。