#build-dependencies #build-script #cargo-build #compile #go #cgo #package

build cgo_oligami

用于构建脚本的编译自定义 Go 代码的库

6 个版本

0.3.6 2023 年 11 月 9 日
0.3.5 2023 年 9 月 18 日

#171 in 构建工具

Download history 12/week @ 2024-03-27 19/week @ 2024-04-03

每月 120 次下载
用于 oracle-nosql-db-sdk-rust

MIT 许可证

18KB
304

cgo-rs

受优秀的 cc crate 启发的用于构建脚本的编译自定义 Go 代码的库。

建议您通过将 cgo crate 添加到您的 build-dependencies 来从 build.rs 文件中使用此库。

[build-dependencies]
cgo_oligami = "*"

示例

以下示例将静态编译 Go 包,并指示 cargo 链接生成的库(libexample)。

fn main() {
    cgo::Build::new()
        .package("pkg/example/main.go")
        .build("example");
}

Windows 不支持

由于 Golang 在 Windows 上不支持 llvm,Rust 无法在 Windows 上链接 Golang 静态库 https://github.com/golang/go/issues/17014。如果您使用,动态库 https://doc.rust-lang.net.cn/reference/items/external-blocks.html#the-link-attribute

支持

mac 和 linux(不带 alpine)

备忘录

https://zenn.dev/koya_iwamura/articles/bb9b590b57d825 https://tip.golang.org/doc/go1.21#go-command

最低版本

  • rust 1.64
  • go 1.21.1

依赖关系

~180KB