gpt4 book ai didi

c++ - 为什么即使我只使用 os api 也会自动链接 msvcrt.dll?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:24 56 4
gpt4 key购买 nike

我正在使用 vs2010,每当我构建任何 Windows 应用程序(不使用 mfc 或标准库 - 仅原始 api)时,msvcrt.dll 都会链接到它。有很多应用程序是在 vs 上编译的,但没有这种依赖性。

如何从我的应用程序中删除 msvcrt.dll 依赖项。

最佳答案

那是 C 运行时库,没有运行时就无法构建 C++ 程序。

对于 Visual Studio 2010,您实际上会链接 msvcr100.dll,因为这是该版本编译器的 MSVC 运行时。普通的旧 msvcrt.dll 是 MSVC6 运行时,现在作为 Windows 系统组件提供。如果您的可执行文件链接到 msvcrt.dll,那么您必须链接到其他东西,而这些东西又链接到 msvcrt.dll,因为 VS2010 中的任何内容都不会依赖 MSVC6 运行时。

您可以使用 static linking (/MT) 删除对 msvcr100.dll 的依赖。但是选择该选项有利有弊。如果您使用静态链接,那么您可以将您的应用程序作为单个可执行文件分发。如果您使用动态链接,那么您必须在每台目标机器上安装运行时。使用某些第三方库将强制您使用动态链接,以便运行时可以在您的可执行文件和第三方库之间共享。

关于c++ - 为什么即使我只使用 os api 也会自动链接 msvcrt.dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8455638/

56 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com