微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我需要一个特定 IDE 的 C++ 可再发行组件?

如何解决为什么我需要一个特定 IDE 的 C++ 可再发行组件?

在使用 C++ 进行开发时,开发人员经常使用 Visual Studio 进行 Windows 开发。在设置 VS IDE 时,Microsoft 提供了一组 C++ 可再发行组件,可供下载以使用 Visual Studio。 C++ 可再发行组件包含用于标准库的 .dll,例如 <stdio>。我的问题是,为什么微软在那里的网站上说这些可分发文件是“用于 Visual Studio”的。例如,是什么阻止了我,下载 C++ 可再发行组件并使用不同的 IDE,让我们假设 Geany 并在其他地方编辑源代码。我们所需要的只是标准库的 .dll,一旦获得它们,我们就可以在任何我们想要的地方编辑我们的源代码

解决方法

它与 IDE 没有任何关系。这是关于 Microsoft 的 C++ 编译器,当您使用动态链接时,它需要一个可重新分发的运行时库。可再发行组件是特定于版本的。

Visual Studio IDE 的每个新版本都捆绑了不同版本的 C++ 编译器工具链。不幸的是,Visual Studio 版本号与 C++ 编译器的实际版本非常不同。因此,Microsoft 选择使用 Visual Studio 版本来标记运行时可再发行组件,因为此版本号更为人所知。 the Wikipedia article中维护了一个版本号映射表(“MSVC++版本”是Microsoft Visual C++的版本号,即构建工具链)。

您可以在 IDE 中使用任何您喜欢的构建工具链,包括非 Microsoft 工具,这些工具需要它们自己的运行时可再发行组件。同样,您可以从另一个 IDE 调用 Microsoft 的构建工具,在这种情况下,您仍然需要 Microsoft 的可再发行组件。

或者,您可以使用静态链接将运行时库直接集成到您的可执行文件中,在这种情况下,您根本不需要可再发行组件。但这有一个明显的缺点,即您的应用程序将无法从运行时库的任何安全更新中受益。您需要重新编译并重新部署可执行文件才能获得这些安全更新。

,

可再发行包并非真正适用于 IDE。它们用于编译器。各种版本的 cl 需要特定的库支持集。

因此,您可以使用任何调用 Microsoft cl 编译器应用程序并使用该编译器的包的 IDE。

或者你可以做相反的事情,通过使用 mingw / mingw-w64 / MSYS2(GCC 和其他针对预安装的 Windows 运行时库编译的 Unix 工具)来避免这些包。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。