首页 > 解决方案 > 每个静态链接 C 运行时的库是否都有不同版本的运行时?

问题描述

这似乎是最基本的问题,但我还没有真正处理过这类事情,所以我希望有人能给出解释。我们就说:

  1. 我有库 1,并将其编译为静态库 .lib,并在编译器选项中静态链接 C 运行时(在 Visual Studio /MT 标志上)。

  2. 我有库 2,我以与库 1 完全相同的方式编译它。

然后我有我的程序,它是一个 .exe 程序/应用程序,在我的应用程序代码中,我静态链接 C 运行时。这是否意味着我的应用程序关于如何处理 std::vector(大小、调试详细信息等)或调用“operator new”或“malloc”的说明可能与其他两个库中的说明不同?并且每个库中的指令是否与其他库不同?

假设我以一致的方式(即所有调试或发布模式)构建库和我的 .exe 应用程序,这两个库与我的应用程序之间的运行时类和函数之间是否仍然存在潜在差异,具体取决于何时静态链接的运行时它被编译了吗?

如果答案是肯定的,并且如果动态链接每个库的运行时是最佳解决方案,那么确保每个库链接相同版本的动态运行时库的方法是什么?

标签: cstatic-libraries

解决方案


推荐阅读