127 个稳定版本

1.0.126 2024年8月15日
1.0.124 2024年6月14日
1.0.120 2024年3月23日
1.0.111 2023年12月17日
0.3.4 2020年5月22日

#52 in 构建工具

Download history • Rust 包仓库 238859/week @ 2024-05-03 • Rust 包仓库 241820/week @ 2024-05-10 • Rust 包仓库 233679/week @ 2024-05-17 • Rust 包仓库 221894/week @ 2024-05-24 • Rust 包仓库 240007/week @ 2024-05-31 • Rust 包仓库 212565/week @ 2024-06-07 • Rust 包仓库 222363/week @ 2024-06-14 • Rust 包仓库 227068/week @ 2024-06-21 • Rust 包仓库 207616/week @ 2024-06-28 • Rust 包仓库 201182/week @ 2024-07-05 • Rust 包仓库 237806/week @ 2024-07-12 • Rust 包仓库 237580/week @ 2024-07-19 • Rust 包仓库 209029/week @ 2024-07-26 • Rust 包仓库 195710/week @ 2024-08-02 • Rust 包仓库 211109/week @ 2024-08-09 • Rust 包仓库 193320/week @ 2024-08-16 • Rust 包仓库

852,738 每月下载量
310 个 crate 中使用 (129 直接使用)

MIT/Apache

375KB
10K SLoC

CXX 代码生成器,用于构建和编译 C++ 代码。

此工具旨在从 Cargo 构建脚本中执行 CXX 的 C++ 代码生成器,根据用例设置任何额外的编译器标志,并调用 C++ 编译器。


示例

构建 CXX 桥接的规范 Cargo 构建脚本的示例

// build.rs

fn main() {
    cxx_build::bridge("src/main.rs")
        .file("src/demo.cc")
        .std("c++11")
        .compile("cxxbridge-demo");

    println!("cargo:rerun-if-changed=src/main.rs");
    println!("cargo:rerun-if-changed=src/demo.cc");
    println!("cargo:rerun-if-changed=include/demo.h");
}

包含此构建脚本的可运行工作设置显示在 https://github.com/dtolnay/cxxdemo 目录中。


替代方案

对于 Bazel 或 Buck 等非 Cargo 构建,CXX 提供了一种调用 C++ 代码生成器作为独立命令行工具的替代方式。此工具作为 cxxbridge-cmdcrate 打包。

$ cargo install cxxbridge-cmd  # or build it from the repo

$ cxxbridge src/main.rs --header > path/to/mybridge.h
$ cxxbridge src/main.rs > path/to/mybridge.cc

依赖项

~0.9–8.5MB
~64K SLoC