「corecrt.hが(あるのに)見つからない」ためBoostビルド不可、を解決

先日の CMake と Boost の記事を書くために色々と試行錯誤する中で、Visual Studio 2015 をアップデートしたり古い Windows 10 SDK をアンインストールしたりした結果、いつの間にか Boost をビルドできなくなっていた。対策に時間を取られた「b2 の罠」と対策について備忘録。なおビルドできないというのは、具体的には b2 を実行すると次のように corecrt.h が見つからない」というエラーが出る状態のこと:

続きを読む “「corecrt.hが(あるのに)見つからない」ためBoostビルド不可、を解決”

cmakeコマンドでのビルド・クリーン・テスト

CMake は、Makefile や Visual Studio プロジェクトといったビルドツール用ファイル群を生成するだけでなくコンパイルや単体テストの実行もできる。もちろん makemsbuild コマンドでビルドも単体テスト実行もできるのだけれど、cmake コマンドから行うと各ビルドツールのコマンドラインオプションを忘れても良いため、Linux と Windows を行ったり来たりしながら開発する場合などは少し脳ミソの負担が軽減される。また、地味ながらリリースビルド時に msbuild の長ったらしいコマンドラインオプションを打たずに済むのもメリットかもしれない。あと、単純に実行するだけなら単体テストランナーの実行ファイルを直接指定して実行する必要が無いため、単体テストランナーの出力パス等を忘れられる点もメリットかもしれない。

続きを読む “cmakeコマンドでのビルド・クリーン・テスト”

CMakeでCRTライブラリを静的リンクするVisual Studioプロジェクトを出力する

CRTライブラリを静的リンクする(/MT コンパイルオプションを使う)よう設定したVisual Studioのプロジェクトファイル (.vcxproj) をCMakeで生成する方法について勉強したので、備忘録。

なお、本質的な内容は公式 Wiki の FAQ に掲載されている方法と変わらない。ただ Wiki の記載をすんなりと理解できなかったので、自分なりにかみ砕いて理解して、自分の価値観的なメリット・デメリットを沿えつつ書き起こしてみた次第。

続きを読む “CMakeでCRTライブラリを静的リンクするVisual Studioプロジェクトを出力する”

_MSC_VERマクロの値 (Visual Studio 2017まで)

Windows用のC/C++プログラムを開発していると、Visual Studioのバージョンによる機能差に対処するためソースコード中でコンパイラバージョンを判断する必要が出てくる。そのときに使うのが_MSC_VERという定義済みプリプロセッサマクロ。この値を暗記すれば苦労は無いのだけれど、イマイチ覚えきれないので備忘録を作った。

なお、新しいVisual Studioが出るたびに随時追記する予定。

続きを読む “_MSC_VERマクロの値 (Visual Studio 2017まで)”