mieki256's diary



2026/02/18(水) [n年前の日記]

#1 [golang] Task/Taskfileを導入

Windows11 x64 25H2上でGo言語(golang)を勉強中だけど、アプリによって go build と打ってビルドしたり、go build -ldflags="-H windowsgui" と打ってビルドするのがなんだか面倒臭い。C/C++だったら make だけで済むのに…。

「Taskfile を使うとそのへん楽になるかもよ」とAI(Google Gemini)が言っている。ググってみたらGo言語で作成されたツールらしい。試用してみようか…。

インストール :

単体でインストールする場合は色々方法があるらしいけれど。

_Installation | Task

自分の環境では Go言語が導入済みなので、go install でインストールしてしまうのが簡単かもしれない。以下を打ってみた。

go install github.com/go-task/task/v3/cmd/task@latest

予想以上に色んなパッケージがインストールされた…。

> which task
"C:\Users\USERNAME\go\bin\task.exe"

> task --version
3.48.0

インストールはされたっぽい。

使い方 :

プロジェクトディレクトリ内に、Taskfile.yml というファイルを作成する。Makefile に相当するのだろう。

今回は以下を書いてみた。

version: '3'

tasks:
  default:
    cmds:
      - task --list

  res:
    desc: Make resource .syso
    cmds:
      - go-winres make

  build:
    desc: Build GUI version
    deps: [res]
    cmds:
      - go build -ldflags="-H windowsgui"

  run:
    desc: Development
    cmds:
      - go run .

  clean:
    desc: remove *.exe and *.syso
    cmds:
      - rm -f *.exe
      - rm -f *.syso

task と打てば default で指定されたコマンドが実行される。上記の設定の場合、task xxxx で指定できる一覧が表示される。

task build と打てば、上記の設定なら go でビルドが行われる。deps: で [res] に依存している旨を指定してあるので、go-winres make が実行されてからビルドされる。

clean で rm を指定してあるけれど…。Taskfile.yml 内で rm と書いてあれば、AI(Google Gemini)曰く、OSに関係なくファイル削除処理をしてくれるらしい。最初、Windows環境だから del と書かないとダメかなーと書いてみたら「そんなファイルは無い」と怒られてしまった。cmd.exe の内部コマンドだもんな…。

とりあえずコレで、task buikd とさえ打ち込めば、事前に指定したコマンドを実行できるようになった。

batファイルでもいいんじゃね、という気もするけど…。task を使っておけばおそらくクロスプラットフォーム対応もしやすいのではないかなあ…。まあ、今回はクロスプラットフォーム対応はしないのだけど。

#2 [windows][prog] GNU MakeをWindows11にインストールした

Windows11 x64 25H2上で GNU Make を使いたい。使えるものであれば使ってみたい。

一応 MSYS2 を導入してあるから、ソレを使えなくもないけれど…。MSYS2 の bash を起動するのがちょっと面倒な気もしていて…。

_ベストなWindowsへのMakeのインストール方法は? Windows - Qiita
_make:Windows環境にインストールして簡単なビルドをしてみる - massie's programming
_Make for Windows

Make for Windows をインストールするという方法もあるらしいけれど、バージョンが 3.81 とかなり古い。


Chocolatey経由でインストールすれば比較的新しい版がインストールされるらしい。たしかにバージョンが 4.4.1。

_Chocolatey Software | GNU make 4.4.1

MSYS2版の make も 4.4.1 だった。Chocolatey 経由でインストールしておけば同じバージョンが使えそう。


_Chocolateyの導入方法

Chocolatey はインストール済みだったので、管理者権限で PowerShell 7 を開いて以下を打った。

choco install make

> which make
"C:\ProgramData\chocolatey\bin\make.exe"

> where make
C:\ProgramData\chocolatey\bin\make.exe
D:\Program Files (x86)\Embarcadero\Studio\23.0\bin\make.exe

> make --version
GNU Make 4.4.1
Built for Windows32
Copyright (C) 1988-2023 Free Software Foundation, Inc.
...

GNU Make 4.4.1 がインストールされた。

ただ、Delphi 12 Community のインストールフォルダにも make.exe があるのがちょっと気になるけど…。Delphi側の動作に問題が起きたりしないか…。どうなんだろうなあ…。

#3 [golang] Go言語で使っているパッケージのバージョンを知りたい

Go言語(golang)で現在使っているパッケージのバージョンを知りたい。

例えば、現在利用している Ebitengine のバージョンを知りたいなら…。go.mod ファイルを眺めればバージョンも書いてある。たぶんそれが一番簡単な確認方法かなと…。

あるいはコマンドプロンプトで以下を打つ。

go list -m github.com/hajimehoshi/ebiten/v2

> go list -m github.com/hajimehoshi/ebiten/v2
github.com/hajimehoshi/ebiten/v2 v2.9.8

最新版に上げたい時は以下でいいらしい。

go get github.com/hajimehoshi/ebiten/v2@latest
go mod tidy

#4 [golang][cg_tools] 画像生成サービスでスプライトシートを作成してもらった

Go + Ebitengine でフルスクリーン表示をするサンプルを書いて、 _Go言語公式マスコットキャラクター「Go Gopher」 画像を表示して動作確認していたけれど。表示している画像がどうも気になる。もっと可愛い感じの画像が欲しい…。

一応自分も Inkscape 1.4 x64 を使ってスプライトシート状の画像を作成してみたけれど、可愛さが足りない。全然足りない。

試しにAIに作ってもらうことにした。Microsoft Copilot と Google Gemini (NanoBanana) に以下を要望。
比較的イイ感じの画像が出てきた。

そのままだとスプライトシートとして利用できなかったので、GIMP 2.10.38 Portable を使って背景を透明にしたり、配置を変えたり、縮小したりして最終画像を作成した。

ライセンス面 :

ライセンスが気になったけど、Google Gemini (NanoBanana) の場合は条件を満たせば商用利用も可能らしい。サービスを利用したユーザに権利が帰属するらしいけど、画像検索などを使って既存画像にそっくりなものが無いか確認した上で使うよう注意せよ、とAIが言っている。

Microsoft Copilotの場合は、Copilot曰く商用利用しなければOKと返してきた。ただ、細かい規約を書いてあるはずのURLも提示してきたものの、何度質問しても404のURLしか出てこない…。あげく、「今現在規約ページはネット上に存在しない」とCopilotが断言してきた…。たぶんコレも嘘なんだろうなあ…。

まあ、サンプルプログラムで使うだけなので、このくらいはいいんじゃないか…。一応画像検索をして、クリソツの画像が無いことは確認したし…。

成果物 :

github にアップロードしておいた。

_mieki256/ebiten_fullscreen_sample: Ebitengineでフルスクリーン表示をするサンプル

先日作成したスクリーンセーバラッパーから呼び出せばスクリーンセーバになるんじゃないかなと…。

_mieki256/SSWrapLz
_mieki256/SSWrapDp

以上、1 日分です。

過去ログ表示

Prev - 2026/02 -
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

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project