package main
// #cgo LDFLAGS: -lre2
//
//#include<re2/re2.h>
//#include<re2/filtered_re2.h>
//#include<cstdio>
//#include<iostream>
//#include<re2/set.h>
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 <algorithm>
^~~~~~~~~~~
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版权声明:本文为guoguangwu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。