【发布时间】:2021-10-05 12:30:25
【问题描述】:
我有 test.rs:
const TEST: &'static str = "Test.bin";
fn main() {
let x = include_bytes!(TEST);
}
rustc test.rs
如何解决这个错误?
error: argument must be a string literal
--> test.rs:4:22
|
4 | let x = include_bytes!(TEST);
| ^^^^
【问题讨论】:
-
如何解决?答案就在问题中:在括号之间放置一个字符串文字。
let x = include_bytes!("test.bin"); -
我需要把这个值从函数中取出来让与代码的交互更容易
-
那你就不能使用这个宏了。你真的希望在二进制文件中包含一些动态的东西吗?
-
等等,让我明白这一点,这个宏甚至不能接受静态字符串参数?那这是什么无用的bs?我的意思是,在函数中硬编码文件名是非常糟糕的做法,所以谁认为这是个好主意?