30
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windowsのコマンドライン開発環境

Last updated at Posted at 2017-06-04

リンク集

Bash (MSYS2)
GCC (pacman(MSYS2/MinGW-w64))
Git (Git for Windows)
CMake (本家)
Make (pacman)
Python (Miniconda)
Node.js (本家)
Ruby (RubyInstaller for Windows)
Perl (Strawberry Perl for Windows)
各種コマンド (pacman)

2018/09/29 Makeについて追記
2018/12/26 chcp.comについて追記
2019/01/12 GCCのオススメを変更、pacmanについての補足の記述を変更
2020/04/03 各種コマンドのオススメを変更

背景

上記リンクを選択した背景です。
誤っている点などあればご指摘ください。

Bash (Git for Windows vs MSYS2)

MSYS2ではpacmanというパッケージ管理ツールが使えます。Git for WindowsにもBash環境もついてくるのですが、pacmanの利点の差でMSYS2を選びました。1

GCC (Cygwin vs MinGW vs MinGW-w64)

CygwinはUNIX環境を再現することに注力しているため、Linuxと同じシステムコールが使えるなど、有利な面もあります。しかしその分、Cygwin上で作ったプログラムはcygwin1.dllに依存してしまいます。今回それはなるべく避けたかったためCygwinは除外しました。
MinGW(Minimalist GNU for Windows)はGNUツールチェーンのWindows移植版で、MinGW-w64はさらにその64bit向けフォーク版です。64bit向けがあるならそちらを使いたい、ということでMinGW-w64を選びました。

MinGW-w64 (本家 vs TDM vs MSYS2)

本家のMinGW-w64は32bitコンパイルができないのでTDMのものを使うことにしました。
TDM は更新が止まっています。
本家 はオンラインインストーラーがありますが、私の環境では使えませんでした。
MSYS2 のMinGW-w64をpacmanで入手することにしました。ライブラリもpacmanで取得できて便利そうです。

$ pacman -S mingw-w64-x86_64-gcc

Git (msys vs Git for Windows)

pacmanでmsysのGitも入手できます。しかしGit for Windowsにはhtmlのヘルプが付いてきました。これが読みやすかったので、シェル環境はMSYS2ですが、GitはGit for Windowsのものを使うことにしました。

CMake (msys vs 本家)

pacmanでmsysのCMakeも入手できます。しかし本家のWindows向けCMakeではジェネレータにVisualStudioを選択できます。これは明確な利点ですので、本家版を使うことにしました。

※ 基本的に「本家で配布されている」またはそれに準じる「Windows版の定番」が存在するのであれば、pacmanで入手するよりも良い選択だと思います。

Make (msys vs GnuWin32)

GnuWin32のmakeはバージョン3.8、pacmanで入手したmsysのmake(msysインストールときに配置されるもの)はバージョン4.1。
GoogleTestをコンパイルしようとした際、GnuWin32のものではエラーしました。

Python (本家 vs Miniconda)

本家でもWindows版が用意されているのですが、pipで取得したパッケージを使おうとした際に使えない場合が結構ありました。Minicondaではpipとは別にcondaというパッケージ管理ツールが付属し、(提供されていれば)Windows用のバイナリが取得できます。OpenCV3も自分でビルドすることなく使用できたため、Minicondaを使うことにしました。

chcp.com 65001 vs chcp.com 932

chcp.com 932   # -> Shift-JIS出力を期待するようになる
chcp.com 65001 # -> UTF8出力を期待するようになる

使いたいツールによるため、どちらがオススメとは言えません。
例を挙げておきます。

コマンド 932 65001
cmd /? 日本語 英語
atom -h 文字化け 日本語

各種コマンド(pacman vs GnuWin32)

GnuWin32でも入手できますが、pacman管理に統一した方がわかりやすくなりそうです。

参考

MSYS2で快適なターミナル生活 - Qiita
Windowsで使えるターミナルとシェルのまとめ - Qiita
やっぱり私がUbuntuになってしまった理由 (Windows 10 Anniversary Update) - Qiita
Windows で快適なシェル生活を送りたい - Qiita

  1. 例えばexpectというコマンドは、非CygwinのWindows版はMSYS2のpacmanで入手するしかなさそうです。

30
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?