package main // #cgo LDFLAGS: -lre2 // //#include//#include //#include //#include //#include import "C" import "fmt" func main() { fmt.Println("hello world") }
错误信息:
In file included from ./main.go:5:0:
/usr/include/re2/re2.h:184:10: fatal error: algorithm: No such file or directory
#include
^~~~~~~~~~~
compilation terminated.
增加CFLAGS,
#cgo CFLAGS: -x c++
还是报错:
/tmp/go-build3534255395/b001/_x002.o: In function `_GLOBAL__sub_I_main.cgo2.c': /usr/include/c++/7/iostream:74: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/7/iostream:74: undefined reference to `std::ios_base::Init::~Init()' collect2: error: ld returned 1 exit status
这个应该是链接错误,再修改LDFLAGS, #cgo LDFLAGS: -lstdc++
go build成功。
运行如下:
# ./re2 hello world



