ddaruma’s blog

なるべくやりたいことをやりきる

RustでWindowsのアイコンの埋め込み

windresをcargo addか、Cargo.tomlに追加して

#[cfg(windows)]  
extern crate windres;  

use windres::Build;  

fn main() {  
    Build::new().compile("src/icon.rc").unwrap();  
}

でなんかできた。他の人もなんか同じような記事見かけたけど、一応試してみての結果を書いとく。

ちなみに、icon.rcの内容は

1 ICON "test.ico"

みたいにしたらできた。ちなみに、icon.rcと同じディレクトリにアイコンもないとだめっぽい。あと良くわからなかったけど、

ICON "test.ico"

みたいに、最初の1をなくしてもエラーになった。多分引数ってかなんかのやーつなんだろう。

あと、この方法Windows限定っぽい。Linuxだと単にデスクトップマネージャだっけ、ディスプレイマネージャーだっけ、まぁそこら辺で普通に設定できるっぽい。プログラムからアイコンを直接実行可能ファイルに埋め込むのはWindowsだけなんかな?