4

我想使用 crate cpp创建一个宏,但是这个 crate 存在宏扩展问题。

语境

crate 通过采用cpp!{ ... }内联 C 代码的宏,将其内容编译为函数,并用生成的函数替换宏调用来工作。这是通过调用cpp_build::build("src/lib.rs").build.rs

问题

正如 crate 的作者所说,cpp!宏是在宏扩展发生之前编译的。这意味着它将尝试按原样解释宏的参数并在宏声明内部展开。

build.rs有没有一种方法可以在调用函数之前触发内部特定宏或文件的扩展cpp_build

4

0 回答 0