事象発生日:2017-09-17
記事公開日:2017-09-18
アクセス数:9610
新しいWindows PCを購入したので,一からC/C++の環境を構築した.
Microsoft Visual Studio 2017 cl.exe と MinGW gcc/g++を用いてSublime Text 3からコンパイルできるように環境構築する.
ついでにEigenも導入する.
トップ画像の出典はこちら.
Sublime Text 3を主に使っているので,そこからC/C++もコンパイルしたい.
Visual Studio付属のコンパイラはとても優秀なので,それをSublimeから叩けるようにした.
また,競技プログラミングのときなど,gcc/g++を使いたいこともあるので,使い分けれるような環境を構築した.
加えて,ベクトル/行列演算計算ライブラリであるEigenも導入した.
Microsoft Windows 10 Home (64bit)
https://www.visualstudio.com/ja/よりVisual Studio Community 2017のインストーラをダウンロードし,デフォルト設定のままインストールする.
Visual Studio 2015以前では,にあるようにC:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.batでコマンドラインを適当に初期化すればよかった.
しかし,Visual Studio 2017ではインストールディレクトリの構造が変わったようで,そこには何も見つからない.
また公式ドキュメントもなかったので,適当にディレクトリを探すと,C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Buildにそれらしいものがあった.
しかし,下のようにそれらしいバッチファイルが5つある.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build> dir /b Microsoft.VCToolsVersion.default.props Microsoft.VCToolsVersion.default.txt vcvars32.bat vcvars64.bat vcvarsall.bat vcvarsamd64_x86.bat vcvarsx86_amd64.bat
まあ,たぶんvcvars64.batだろうと,その中を確認すると,
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build> type vcvars64.bat @call "%~dp0vcvarsall.bat" x64 %*
であったので,とりあえずこれを使って試してみることにした.
適当にtest.cppを作り,コマンドラインからVisual StudioのVCコンパイラが使えるか試す.
C:\${source_path}> "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26730.15
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
C:\Users\${username}\source> cd C:\${source_path}
C:\${source_path}> cl /EHsc /O2 /nologo test.cpp
test.cpp
C:\${source_path}> test.exe
Hello World!
日本語もおっけー
できてますね.vcvars64.batを叩くと強制cdされるのがうざいけど.
| http://www.mingw.org/よりmingw-get-setup.exeをダウンロードする. | |
| 全ユーザで使いたいので,インストーラを管理者権限で実行する. | |
| インストールが終わったら,MinGW Installation Managerを開き, ・ mingw32-base・ mingw32-gcc-g++を選択して Apply Changesする.mingw-developer-toolkitも入れればMSYSがインストールされるので,lsやgrepなどが使えて便利になるが,ここでは選択しなかった. | |
インストールディレクトリ(C:\MinGW\bin)にPATHを通す. |
C:\${source_path}> g++ -O2 --exec-charset=CP932 -std=c++14 test.cpp -o test.exe
C:\${source_path}> test.exe
Hello World!
日本語もおっけー
| http://eigen.tuxfamily.org/index.phpよりeigen-eigen-5a0156e40feb.zipをダウンロードする. | |
それを解凍し,その中にあるEigenフォルダをそのまま,・ C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include・ C:\MinGW\lib\gcc\mingw32\6.3.0\include\c++へコピーする. |
.sublime-buildのコマンド設定で,ファイルパスに空白が含まれるコマンドの設定ができなかったので,仕方なくvcvars64.batのPATHを通す.
システム環境変数に,変数VC_PATHを新規作成,その変数値をC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\とし,%VC_PATH%をシステム環境PATHへ登録した.
${sublime_path}\Data\Packages\User\MyCpp.sublime-buildを作成し,下のように記述する.
すると,Ctrl+Bで記述したプリセットでのコンパイル,実行が可能となる.
{
// http://qiita.com/lunatea/items/2bd07ae58e657d625868#gcc
"selector": "source.c++",
"working_dir": "$file_path",
"file_regex": "^(.*?):([0-9]*):?([0-9]*):? (.*)",
"cmd": ["g++", "-std=c99", "-municode", "$file_name", "-o", "$file_base_name"],
"variants":
[
{
"name": "Run",
"shell": true,
"encoding": "Shift_JIS",
"cmd": "g++ $file_name -o $file_base_name.exe & $file_base_name.exe",
},
{
"name": "Run with Terminal",
"shell": true,
"windows":
{
"cmd": ["start", "cmd", "/c", "vcvars64 & cd $file_path & cl /EHsc /nologo $file_name & echo === & echo. & $file_base_name & echo. & pause"],
}
},
{
"name": "Run with Terminal -O2",
"shell": true,
"windows":
{
"cmd": ["start", "cmd", "/c", "vcvars64 & cd $file_path & cl /EHsc /O2 /nologo $file_name & echo === & echo. & $file_base_name & echo. & pause"],
}
},
{
"name": "Run with Terminal -O2 GNU",
"shell": true,
"windows":
{
"cmd": ["start", "cmd", "/c", "g++ -O2 --exec-charset=CP932 -std=c++14 $file_name -o $file_base_name & $file_base_name & pause"],
}
},
{
"name": "Run with Terminal without Compile",
"shell": true,
"windows":
{
"cmd": ["start", "cmd", "/c", "echo === & echo. & $file_base_name & echo. & pause"],
}
}
]
}
| Microsoft Developer Network. 方法: 64 ビットの Visual C++ ツールセットをコマンド ラインから有効にする. Retrieved September 17, 2017, from https://msdn.microsoft.com/ja-jp/library/x4d2c09s.aspx |
名前
Email (※公開されることはありません)
コメント