依存DLLゼロの単体exeで配る──Windows×Rustで「全部入り」を1ファイルにする舞台裏
概要
Rustで開発した画像ビューワ「mIV」を、インストール不要・依存DLLゼロの単体exeとして配布するための技術的工夫をまとめた記事。PDF表示・AI推論・FFmpegなど重量級の依存物を1つのexeに詰め込む手法を解説。
詳細
include_bytes!マクロでDLL・AIモデル・32bit プラグイン用ワーカー等をコンパイル時にexeへ丸ごと埋め込む- 初回起動時に
%APPDATA%へ展開し、SHA256ハッシュで2回目以降はスキップする仕組みで起動を高速化 - VC++再頒布パッケージ依存を解消するため「crt-static(Cランタイム静的リンク)」を使用
- FFmpeg依存の最難関:動的ロード(LoadLibrary)+クロスコンパイル済みDLLを埋め込むことで解決
dumpbin /dependentsでexeの依存DLLを最終確認し、システムDLLのみになることを検証- USBメモリに画像と実行ファイルを入れてどのPCでも即動かせる「ポータブルビューワ」を実現
参照
- 出典: https://qiita.com/mikage/items/77874c029b80bf9d84a5
- はてなブックマーク数: 8