msys2でucrtのランタイムを使おう!ようこそucrt64
ucrtとは
Universal CRT へのコードのアップグレード | Microsoft Docs
ここに解説があるが要約する。
まずプログラムを動かすにあたり、少なくともCのランタイムライブラリが必要になる。これはmsvcrtがこれまで用いられてきた
Visual Studio 2015でC lintimeのリファクタリングが行われ、様々な機能が追加された。例えばstrtodでの浮動小数点のパースの改善とかstd::quick_exit
の対応とかそういうのだ。これをUniversal C Runtime、ucrtと呼ぶ。
msys2でもこのucrtに対応する動きが見られている。
msys2におけるucrt対応
わりとひっそりと行われている。
https://github.com/msys2/MINGW-packages/issues/6901
あたりが該当するissueにようにおもえる。
何回かpacman -Syuu
で更新し続けているとそのうちmsys64
直下にucrt64.exe
/`ucrt64.ico
が生えていく。
まだ駆け出しのプロジェクトでパッケージ側も対応していないものもある(私のパッケージもなんとかしないと・・・)。
トラブルシューティング
ucrt64.exe
/`ucrt64.ico
がない!
ucrt64.exe
/`ucrt64.ico
がない!pacman -Syuu
で更新し続けましょう。そのうち生えます。該当するパッケージは
https://packages.msys2.org/package/msys2-launcher?repo=msys&variant=x86_64
これです。
pacman -Syuu
でucrt64を見に行っている様子がないが?
$pacman -Syuu
:: パッケージデータベースの同期中...
mingw32 は最新です
mingw64 は最新です
ucrt64 は最新です
msys は最新です
のようになっているのが望ましい状態だがucrt64がないぞという場合もある
/etc/pacman.conf
を確認する
[mingw32]
Include = /etc/pacman.d/mirrorlist.mingw32
[mingw64]
Include = /etc/pacman.d/mirrorlist.mingw64
[ucrt64]
Include = /etc/pacman.d/mirrorlist.ucrt64
[msys]
Include = /etc/pacman.d/mirrorlist.msys
上のようなのが含まれているのが望ましいが、ucrt64の項目がないかもしれない。その場合は手動で付け加える。
/etc/pacman.d/mirrorlist.ucrt64
を確認する
そもそもないかもしれない。そういう場合は/etc/pacman.d/mirrorlist.minw64
をコピーして作成して、各URLの末尾をucrt64
に置換すればよい
Author And Source
この問題について(msys2でucrtのランタイムを使おう!ようこそucrt64), 我々は、より多くの情報をここで見つけました https://qiita.com/yumetodo/items/d849a6dcf08e0435f815著者帰属:元の著者の情報は、元の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 .