说明如何在 Windows 上获取基于 MSVCRTD 的调试构建库
作者: uazu创建于 2021年6月3日更新于 2026年4月27日
标签docswindows
这让我们花了一段时间才弄清楚。Rust 的 "staticlib" 调试构建会生成一个 LIB,引用了 MSVCRT。这不适合与使用 MSVC 调试设置 (/MDd) 构建的 C++ 代码进行链接,因为需要所有内容都使用 MSVCRTD。要获得一个引用 MSVCRTD 的 Rust LIB,似乎需要在 Windows 环境中设置 `CFLAGS=-MDd` 和 `CXXFLAGS=-MDd`(例如,在命令提示符下输入 `set CFLAGS=-MDd` 等)。这样做是因为 `cc` crate 在调用 `cl.exe` 时会将这些设置加载。在我们的使用案例中,这导致生成的 LIB 的 `dumpbin /all` 输出中对 MSVCRT 的所有提及都被替换为 MSVCRTD。然后,将 LIB 连接到调试 C++ 代码就成功了。
内容来源: dtolnay/cxx