[MSVC]最新のビルドツールが選ばれるようにする方法
最新のビルドツールが選ばれない
私は MSVC v143 - VS 2022 C++ ビルドツールを複数バージョン (side-by-side) インストール しているのですが、デフォルトで v143 の最新が選ばれないという問題に遭遇しました。同じような問題で悩んでいませんか?
Visual Studio 2022での開発中に、
プロジェクトの設定では「Visual Studio 2022 (v143)」を選んだ時にv143 の古いバージョンのツールチェインが選ばれている。
コマンドプロンプトで cl.exe を確認しても、最新のバージョンが呼び出されない。
例えばツールセットに v143 複数バージョン (19.41や19.42) が共存している時に、なぜか古いバージョンの 19.41 が使われてしまうという現象です。
この問題の影響
知らずに古いバージョンを使い続けてしまい、古いバグに苦しんでしまったり、最新機能が使えなかったりする可能性があります。
最新バージョンのバグと誤認してしまったり、まだ最新機能が使えないと勘違いしてしまう可能性もあります。
古いバージョンを使っているのにもかかわらず、最新版を使っていると勘違いし続ける可能性もあります。気づけないのは怖いですね。
なぜ最新バージョンが選ばれない?
この現象の根本的な原因は、Visual Studioの設定ファイルに誤った情報が含まれているためです。
この記事では、問題の原因と問題が起きる過程を調べたので説明します。「原因を詳しく知りたい!」「どうやって解決するの?」という方は続きをご覧ください。
みなさんは「どうやって解決するの?」に興味があると思うのですが、私が時間をかけたのは「問題が起きる過程」の調査でした。はい、大変でした(笑)
環境
再現した私の環境はこんな感じです。
Visual Studio 2022 17.12.3
MSVC v143 VS 2022 C++ x64/x86 ビルドツールを複数インストールしている (side-by-side)
v14.41-17.11 (cl.exe のバージョン 19.41.34123)
v14.42-17.12 (cl.exe のバージョン 19.42.34435) (最新)
他にも多数のバージョンが入っている
問題の詳細
VS2022 IDE の場合の問題
Visual Studio 2022 IDE からプロジェクトのプロパティのプラットフォームツールセットを「Visual Studio 2022 (v143)」にしてビルドすると古い 19.41.34123 の cl.exe が呼ばれてしまいました。
開発者ツールの場合の問題
以下のショートカットで同様です
Developer Command Prompt for VS 2022
Developer PowerShell for VS 2022
VC/x64 Native Tools Command Prompt for VS 2022
VC/x64_x86 Cross Tools Command Prompt for VS 2022
VC/x86 Native Tools Command Prompt for VS 2022
VC/x86_x64 Cross Tools Command Prompt for VS 2022
Developer Command Prompt for VS 2022 ショートカットから cmd.exe コマンドプロンプトを起動して cl.exe を呼ぶと古い 19.41.34123 バージョンになってしまいました。
なぜ最新バージョン 19.42.34435 が呼ばれないのだ?どうしてそうなった?
直接的な原因と問題が起きる過程
ビルドツール(ツールチェイン)を設定するファイルに誤ったバージョンが書かれているのが原因です。本来であればインストーラが最新版に更新するべきですが、ちゃんと仕事していないようです。
問題のファイル
ここから先は
この記事が気に入ったらチップで応援してみませんか?