gpt4 book ai didi

rust - 如何以编程方式编译 Rust 程序?

转载 作者:行者123 更新时间:2023-11-29 07:59:00 25 4
gpt4 key购买 nike

鉴于我试图以表达式树的形式创建的库的元数据,我希望能够将其转换为某种 Rust 特定的语法树,可以提供给 Rust 编译器。

我找到了一个 related question但它已经过时了。

最佳答案

是的。 Rust 编译器本身。整个编译器是一个库,rustc 只是一个调用编译器的小箱子。例如有 stupid-stats箱。它运行 Rust 编译器以生成一些有关代码的统计信息。

您只需导入 rustcrustc_driver crate(使用 extern crate)并实现 rustc_driver::CompilerCalls 类型的特征(我们称之为 MyDriver)。然后你可以像这样运行 rustc:

let args: Vec<_> = std::env::args().collect();
let mut my_driver = MyDriver::new();
rustc_driver::run_compiler(&args, &mut my_driver);

需要确保传递的是标准库和核心库的路径。就我而言,我添加了

"-L $HOME/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib"

命令行。您不能简单地将其添加到 args 向量中,因为此处未解析 $HOME。因此,您需要更多代码来提取 $HOME 环境变量并构建您的命令。

关于rust - 如何以编程方式编译 Rust 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33772512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com