mieki256's diary



2026/03/04(水) [n年前の日記]

#1 [nim] Nimの勉強中。その2

プログラミング言語 Nim について勉強中。環境は Windows11 x64 25H2 + Nim 2.2.8 64bit。

スクリーンセーバを作ってみた :

Nim 2.2.8 64bit を使ってWindows用のスクリーンセーバを作ってみた。

_mieki256/ssnimsample: Nim言語製のWindows用スクリーンセーバのサンプル

ほとんどの部分をAI(Google Gemini)に作ってもらったような気もするけれど、途中で嘘を言い出すから不具合の原因を調べて修正するのが大変だった…。

  • ウインドウの生成には winim を使用。
  • フルスクリーン表示、プレビュー画面表示は OpenGL を使用。

_ssnimsample.nim 内の render() を書き換えれば独自のスクリーンセーバを作れるかなと…。

スクリーンセーバ名は、 _resource.rc 内で指定しているので記述を変更すればOK。

とりあえずNim言語を使ってもWindows用のスクリーンセーバを作れそうだと分かった。

nim.cfgについて :

Nimでコンパイルする際、一々コンパイルオプションをつけて作業するのが面倒臭い。
nim c -d:release -d:strip --opt:size --passL:"resource.res" --app:gui main.nim

batファイルを作って対応してたけど、もうちょっといい方法はないか。

nim.cfg なるものがあるらしい。コンパイルオプションを nim.cfg に列挙しておけば、nim c hoge.nim と打つだけで、そのコンパイルオプションを利用してくれるのだとか。

今回は以下のような nim.cfg になった。

nim.cfg
--app:gui
-d:release
-d:strip
--opt:size
--passL:"resource.res"
  • --app:gui ... GUIアプリを作るための指定。実行時にコンソールが出ない。
  • -d:release ... デバッグ情報を削除したり、最適化したりする。
  • -d:strip ... デバッグシンボル情報を削除する指定
  • --opt:size ... ファイルサイズが小さくなるように指定。
  • --passL:"resource.res" ... リンカへの指定。この場合リソースファイル resource.res もリンクせよと指示してる。

nim c hoge.nim と打ったら反映された。

以上です。

過去ログ表示

Prev - 2026/03 -
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project