背景
- MSVC 非依存で Windows C/C++ アプリを mingw, clang でビルドしたい
- せっかくなので, UCRT を使ってみたい
- UCRT でなくとも, 一応は MSVC 非依存でビルドできる
UCRT(Universal CRT)
最近の推奨? C/C++ アプリ開発者から見ると, いわゆる C runtime(glibc)相当.
UWP(Universal Windows Platform)用にビルドするには UCRT が必要(+ UNICODE 環境オンリー)
MinGW 環境でビルドする
Windows SDK にある UCRT のヘッダは, vcruntime.h などに依存しており, mingw(gcc, clang)ではビルドできない(MSVC header が別途必要)
MinGW に作成したヘッダを使う. _UCRT
を定義する.
llvm-mingw では libvcruntime140_app.a
がすでにあるのでこちらを利用すればよい
注意事項
- UCRT には C++ STL は含まれていない
- llvm-mingw を見る限り,
libc++
とはうまく組み合わせることができるっぽい
- llvm-mingw を見る限り,
- d3d12.h などは, 一応頑張ればいけるっぽい.
- d3d12 API 自体が実際には C++ なコードなので, C++ モードにしてコンパイルが必要