おすすめWindowsアプリ (開発ツール)

(2012.4) ページを分割.

統合開発環境 (IDE) は別ページに分けました; おすすめWindowsアプリ (IDE & テキストエディタ)

UNIX互換環境

Windows 上で UNIX環境を再現したいことがある.

一つは, GNU toolchainを使って Windows ソフトウェアを開発したい場合。Cross-platform / multi-platform なソフトウェアの開発で、コンパイラや make だけ使いたい。

この場合は, 以下の MSYS2 か, それをベースにした Git for Windows がいい。

二つ目は, UNIX 用のソースコードのコンパイル。

この場合は, 以下の Cygwin。ネイティブバイナリにはならない。

最後は, このページでは扱わないが, Linuxバイナリを動かしたい場合.

VMware Workstation Player か Oracle VirtualBox を入れて仮想環境を構築するか, Windows Subsystem for Linux を導入すればいい。Windows とシームレスな X環境が必要な場合は, 加えて Cygwin/X がいい。

☆ Git for Windows

(2015.10更新)

MSYS2 の成果を利用して, コマンドラインの gitコマンドだけでなく, git gui, gitk も利用できるようにしたもの。

MSYS2 をベースにしているので, 次の 3つの環境が利用できる。"MSYS2" は Cygwin と同様に, ネイティブバイナリではない。

  • mingw32
  • mingw64
  • msys2

現在の最新版はv2.6.2. Git-2.6.2-32-bit.exe はインストールに管理者権限が必要. PortableGit-2.6.2-32-bit.7z.exe のほうは管理者権限不要.

さまざまなコマンドが同梱されているものの, gcc が入っていないため, そのままでは開発には使えない.

Git for Windows SDK を入れればいい。インストーラの実行に管理者権限は不要。ネットインストーラで、gcc などを自動ダウンロードしてくれる。git コマンドも含まれるので、これだけインストールすれば OK.

インストール後の設定

改行の自動変換は切っておくこと。有効だと, 意図せず化けてしまう。バイナリファイルが壊滅。

$ git config --global core.autocrlf false

mingw32 で git gui が起動できない

mingw64 は問題ないのに, mingw32 だと git gui が失敗する。

[Error in startup script] エラーダイアログ

bitmap "/usr/share/git-gui/lib/git-gui.ico" not defined
  while executing
"wm iconbitmap . -default $oguilib/git-gui.ico"
  invoked from within
"if {[is_Windows]} {
        wm iconbitmap . -default $oguilib/git-gui.ico
        set ::tk::AlwaysShowSelection 1
        bind . <Control-F2> {console show}

        # Spoof an X..."
    (file "D:/git-sdk-64/usr/lib/git-core/git-gui" line 734)

簡単なのは, /usr/bin/git ではなく, mingw32 でも /mingw64/bin/git コマンドを起動する。

一応, /usr/lib/git-core/git-gui ファイルのここがポイント;

if { [info exists ::env(GIT_GUI_LIB_DIR) ] } {
        set oguilib $::env(GIT_GUI_LIB_DIR)
} else {
        set oguilib {/usr/share/git-gui/lib}
}

上手い解法は見つけていない。

パッケージのアップグレード

Git for Windows は pacman を利用している。/etc/pacman.conf で, リポジトリを5つ使うようになっている.

  • git-for-windows
  • git-for-windows-mingw32
  • mingw32
  • mingw64
  • msys

すべてのパッケージをアップグレードするのは、次のコマンド。

$ pacman --sync -u -y

△ Cygwin

Windows上にUNIXっぽい環境を構築。Cygwin のゴールは, UNIX (POSIX) 用ソフトウェアのソースコードをそのまま Cygwin 上でコンパイルでき, 動かせるようにすること。

cygwin1.dll が POSIX API機能を提供する。Windows API だけでは実現できないエミュレーションをおこなえるので、UNIX環境の再現性は比較的高い。一方, Cygwin 上でコンパイルしたプログラムは cygwin1.dll に依存するようになる。Windows 用の再配布するソフトウェアの開発には向かない。

2019.4月現在の最新版は, バージョン3.0.6.

[2015-10 ここから]
2015年10月現在の最新版はバージョン 2.2.1. 32bit版と64bit版がある。

setup-x86_64.exe をダウンロードし、実行する。管理者権限が必要。

パッケージには, GNOME 3.14 (2014年9月リリース), MATE 1.8 (2014年3月リリース), や KDE 4.11 (2013年8月リリース) などが見える。最新版というわけではない。

下の MSYS2 には gtk3 はあるが, GNOME や KDE は用意されていないようだ。UNIX環境を再現するパッケージは, Cygwin のほうがまだまだ豊富みたい。

[2015-10 ここまで]

Windows Subsystem for Linux を使う場合の X環境 (Xサーバ) として, Cygwin/X を使う手がある。VcXsrv よりも優れているという意見もチラホラ見かける。

Cygwinの情報は、例えば下記から入手できる。

同種のソフト:

djgpp
UNIX-like tools

MSYS2

(2015.10追加)

MinGW (MSYS) の後継となることを目指したプロジェクト。Windows native にできるものはそのようにして、UNIXエミュレーションが必要なものは Cygwinからforkしたライブラリを使う。

次の3つの独立した環境が合わさったもの。

  • msys2 -- UNIXエミュレーション msys-2.0.dll に依存
  • mingw64 -- Windowsネイティブ, 64bit
  • mingw32 -- Windowsネイティブ, 32bit

パッケージマネジャは, Arch Linux 由来の Pacman を使う。

インストーラは次から入手できる;

インストーラの実行に管理者権限は不要。実行すると、インストール先を決めるだけで, 特にパッケージ選択もなくインストールが始まる。

"MSYS2 64bit"スタートメニューに次の3エントリが作られる;

  • MinGW-w64 Win32 Shell
  • MinGW-w64 Win64 Shell
  • MSYS2 Shell

Windows 10 (64bit) 上で試してみたが、fork() がエラーになっているようで、実用にならなかった。 -- Cygwin界隈ではよくあるみたい。MSYS2も同じか。

管理者でインストールすればよかったのかもしれないが、試していない。

△ MinGW (MSYS)

UNIXとソース互換の開発環境を作る。コンパイルしたプログラムはWindowsネイティブになる。

gcc, binutilsなどをWindowsに移植したもの。Windowsの msvcrt.dll を利用するプログラムを生成するので、再配布するソフトウェアの開発向き。UNIXのエミュレートはしないので、ソケットはWinsockを使うなど, Windows API を使わなければならない。

[2015-10]
2015年10月現在、2013年10月にリリースされたインストーラが最新版のようだ。個々のパッケージは更新されている。

インストール手順; MinGWのインストール

プログラミング言語

Ruby

オブジェクト指向のスクリプト言語。私は, 1999年、バージョン1.4頃から使いはじめた。

Rubyについての記事はこちら; Ruby Centre

Haskell

遅延評価のできる関数型言語。

Haskellについての記事はこちら; はすけるで遊ぶ

Python

もう一つのオブジェクト指向・スクリプト言語。日本以外では、RubyよりもPythonのほうがメジャー。

Python についての記事はこちら; 技術メモ(ソフトウェア開発)

比較・パッチ

☆ WinMerge

(2014.6追加)

Windows用比較・マージツール.

上が本家だが, 2013年2月のv2.14.0 で止まっていた。

下の WinMerge日本版は, 単に日本語化したものではなく, 3ファイル比較, 比較アルゴリズムの改善など, 大幅な変更を加えたものです。こちらがお勧め。

64bit版と32bit版がありますが, 32bit版のほうをダウンロードします。

ExcelやLibreOfficeのファイルを扱うために, プラグインも入手します。

(2018.6 更新) WinMerge 日本版が, 本家の開発を引き継ぐことになりました。WinMerge / News: A sign of life from WinMerge

☆バイナリエディタ Bz

本家 Bz - c.mos

tamachan氏が開発を引き継いでいる; devil-tamachan/binaryeditorbz · GitHub

64bit版あり。バイナリファイルにバイト列を挿入できるのが、意外にポイント高い。

画面は SDI. 複数のファイルを表示するときは, 単に Bz をいくつか起動すればいい。

一方, ファイル比較のときは、まず [表示]メニューから上下・左右に分割したうえで、ファイルを二つ開けばOK.

△ HxD

バイナリエディタ。巨大なバイナリファイルの超高速な比較ができる。

HxD - Freeware Hex Editor and Disk Editor | mh-nexus

日本語版あり。portable版のほうを取ってくればいい。 バージョン2.2.1 (2019年2月) は日本語版がない。インストールに管理者権限が必要。

文字列表示について, UTF-8 が選択肢になく, ほかの Unicode エンコーディングもない。

その他

pgAdmin などのデータベース管理ツールはこちら; DBMS GUIツール

UMLet

UML の作図。

UML をテキスト(記号)でも編集できる。

同種のソフト:

astah* community - 無償UMLモデリングツール
多彩な UML作図ツール. 旧JUDE/Community.

TortoiseGit

Windowsエクスプローラとgitとの統合。