経緯・発生している問題
Rust初学者です。
RustでUTAUというフリーな歌唱音声合成ソフトのプラグインを作ってみたいなと思い、こちらのサイト(https://yun.cup.com/utauplugins.html)を参考に開発をしていたところ、Shift_JIS→UTF8変換のためにencoding_rsという外部クレートを使い始めてから`rustc`が以下のようなエラーを吐くようになりました。
error[E0432]: unresolved import `encoding_rs` --> src/main.rs:2:5 | 2 | use encoding_rs::SHIFT_JIS; | ^^^^^^^^^^^ maybe a missing crate `encoding_rs`? error: aborting due to previous error For more information about this error, try `rustc --explain E0432`.
何を間違えたのかと思いコードを見直してみてもそれらしい問題は見つからず、おかしいなと思いCargo build
やCargo check
やCargo run
を試したところ、いずれも正常に実行されました。
なぜrustc
のみがエラーを吐いてしまったのでしょうか...?またこのエラーを解決し、正常にコンパイルするにはどうすればよいのでしょうか...?
該当のソースコード
Rust
1use std::{io::{stdin,stdout,Write,Read},env,fs::*,error::Error,process}; 2use encoding_rs::SHIFT_JIS; 3 4fn main()->Result<(),Box<dyn Error>>{ 5 let args: Vec<String>=env::args().collect(); 6 let tmpfile; 7 if let None=args.get(1){ 8 eprint!("Error:不明なエラーが発生しました.\n"); 9 eprint!("UTAUから正常にファイルパスが渡されませんでした.\n"); 10 process::exit(1); 11 } 12 else{ 13 tmpfile=args.get(1).unwrap(); 14 } 15 16 let file_byte=read_file_as_byte(tmpfile); 17 let (decoded,_,_)=SHIFT_JIS.decode(&file_byte); 18 let uta_data=decoded.into_owned(); 19 20 for line in uta_data.split("\n"){ 21 print!("{}\n",line); 22 } 23 24 let mut end=String::new(); 25 print!("任意のキー+Enterでプログラムを終了します.\n"); stdout().flush().unwrap(); 26 stdin().read_line(&mut end)?; 27 28 Ok(()) 29} 30 31fn read_file_as_byte(filename: &String)->Vec<u8>{ 32 let mut file=match File::open(filename){ 33 Ok(ok)=>ok, 34 Err(err)=>{ 35 eprint!("Error:File::open()\n{}\n",err); 36 eprint!("見つかったファイルパス:{}\n",filename); 37 process::exit(1); 38 } 39 }; 40 41 let metadata=metadata(&filename).expect("Error:メタデータを読み取れませんでした.\n"); 42 let mut buffer=vec![0;metadata.len() as usize]; 43 file.read(&mut buffer).expect("Error:バッファのオーバーフローが発生しました.\n"); 44 45 buffer 46}
試したこと
Cargo.tomlのeditionを2015にした上で、先のソースコードの先頭にextern crate encoding_rs;
の記述を追加しましたが、解決には至りませんでした。
補足情報
Cargo.toml
[package] name = "even_scale" version = "0.1.0" edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] encoding_rs = "0.8.30"
開発環境
Visual Studio Code ver. 1.61
実行環境
CPU:Intel Core i5 1.10 - 1.50[GHz]
OS:Windows 10 Home ver. 21H1
メモリ:8.00[GB]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/20 14:00
2021/12/20 14:12