我正在尝试使用 Bazel (v1.0.0)rules_go 来构建标头+库,就像使用 go build 一样-buildmode=c-archive。我在 BUILD.bzl 文件中设置了以下规则:
go_binary(
name="go_cpp_bridge",
srcs = ["cpp_bridge.go"],
cgo = True,
gc_linkopts=["-buildmode=c-shared"],
linkmode = "c-archive",
visibility = ["//visibility:public"],
)
目前的代码cpp_bridge.go只是一个hello world,看看是否有效:
package main
import "C"
//export Add
func Add(a, b int) int { return a + b }
func main(){}
Bazel 确实生成了一个库文件,但我在 bazel-bin 输出中缺少关联的头文件。使用 go build 进行测试会生成头文件和库。我怎样才能让巴泽尔给我同样的东西。
DIEA
相关分类