Windows で nim 0.20 を使う (mingw / Visual Studio 両対応)
Windows に nim 0.20 をインストールして使う手順を、mingw だけでなく、Visual Studio (VC++) を使う場合についてもまとめておきます。
nim 本体のインストール
基本的には公式の Windows ダウンロード/インストールページの通りです。
ただ、私は普段は VC++ を使いたいので、finish.exe
というコマンドは利用したことがなく、こんな感じでインストールしています:
-
nim-0.20.0_x64.zip
(32 ビット OS ならnim-0.20.0_x32.zip
)をダウンロード - 上記 ZIP ファイルをどこぞに展開
-
nim-0.20.0
というトップディレクトリが作成される(以下これを$NIM_DIR
と呼ぶ) -
$NIM_DIR\bin
と%USERPROFILE%\.nimble\bin
をPATH
に追加
ちなみに、簡単なソースのコンパイルなど、nimble
を使わない程度の作業ならば、$NIM_DIR\bin
が PATH
に追加してあれば OK です。
mingw を使う場合
同じく公式の Windows ダウンロード/インストールページ に記載されている
mingw32-6.3.0.7z
mingw64-6.3.0.7z
の適切な方をダウンロード&展開して、出来上がったディレクトリの bin
を PATH
に追加します。
これでコンパイルはできるようになっているはずです。
実際、nim の examples
ディレクトリにある hallo.nim
をコンパイルしてみると・・・
> nim c hallo.nim
Hint: used config file 'D:\(略)\nim\nim-0.20.0\config\nim.cfg' [Conf]
Hint: system [Processing]
Hint: widestrs [Processing]
Hint: io [Processing]
Hint: hallo [Processing]
CC: stdlib_io.nim
CC: stdlib_system.nim
CC: hallo.nim
Hint: [Link]
Hint: operation successful (14097 lines compiled; 0.942 sec total; 15.906MiB peakmem; Debug Build) [SuccessX]
> hallo.exe
Hello World
無事コンパイルと実行が確認されました。
Visual Studio を使う場合
Visual Studio は既にインストールされているものとします。
Visual Studio を使ってコンパイルする場合は、 $NIM_DIR\config\nim.cfg
をテキストエディタで開いて 11 行目あたりにある cc
という変数の値を vcc
に変更します。
cc = vcc
これによって、gcc の代わりに vccexe.exe
というプログラムがコンパイラとして起動されるようになります。
vccexe.exe
は、Visual Studio の C コンパイラ cl.exe
の場所を探し、適切なものが見付かれば、実際のコンパイル処理を cl.exe
に委譲します(見付からなければ当然コンパイルエラーになります)。
Visual Studio 2015 以前
Visual Studio 2015 までは、インストール時に VS*COMNTOOLS
という環境変数が定義されていたので、vccexe.exe
はこれらの環境変数から自動的に Visual Studio のビルド環境バッチファイルを見つけ出し、それを実行してから cl.exe
を起動します。
なので、VS140COMNTOOLS
や VS120COMNTOOLS
といった環境変数を敢えて削除していない限りは、Visual Studio の C/C++ コンパイラが自動的に検出されるはずです。
Visual Studio 2017 以降
Visual Studio 2017 からは、Visual Studio の複数のエディションをインストールすることを考慮してでしょうか、上述の VS*COMNTOOLS
という環境変数が定義されなくなりました。
そのため、nim 0.20.0 の vccexe.exe
は、Visual Studio 2017 や 2019 の C/C++ コンパイラを自動認識してくれません。
この場合は、次節で説明するように、ビルド環境用のバッチファイルを手動で起動し、その中で nim を利用するのがよいでしょう。
なお、Visual Studio 2017, 2019 も検出するように改良してプルリクを投げておきましたので、次の nim のリリースからは、Visual Studio 2017/2019 のコンパイラも自動認識されるようになると思います。
手動で cl.exe
にパスを通しておく(VS バージョンに非依存)
Visual Studio にはビルド環境用のバッチファイル(vcvarsall.bat
など)が用意されています。
それらのショートカットを使って、パスなどの環境変数が適切に設定された状態にしたコマンドプロンプトで nim を起動すれば、VS のバージョンに関係なく、問題なくコンパイルできるはずです。
なお、Visual Studio の C/C++ ビルド環境については、別記事で詳しくまとめました。
興味のある方はそちらもご参照下さい。
Author And Source
この問題について(Windows で nim 0.20 を使う (mingw / Visual Studio 両対応)), 我々は、より多くの情報をここで見つけました https://qiita.com/softgate/items/be2cf2972335c90dbef1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .