c - 每个静态链接 C 运行时的库是否都有不同版本的运行时?
问题描述
这似乎是最基本的问题,但我还没有真正处理过这类事情,所以我希望有人能给出解释。我们就说:
我有库 1,并将其编译为静态库 .lib,并在编译器选项中静态链接 C 运行时(在 Visual Studio /MT 标志上)。
我有库 2,我以与库 1 完全相同的方式编译它。
然后我有我的程序,它是一个 .exe 程序/应用程序,在我的应用程序代码中,我静态链接 C 运行时。这是否意味着我的应用程序关于如何处理 std::vector(大小、调试详细信息等)或调用“operator new”或“malloc”的说明可能与其他两个库中的说明不同?并且每个库中的指令是否与其他库不同?
假设我以一致的方式(即所有调试或发布模式)构建库和我的 .exe 应用程序,这两个库与我的应用程序之间的运行时类和函数之间是否仍然存在潜在差异,具体取决于何时静态链接的运行时它被编译了吗?
如果答案是肯定的,并且如果动态链接每个库的运行时是最佳解决方案,那么确保每个库链接相同版本的动态运行时库的方法是什么?
解决方案
推荐阅读
- javascript - 如何为路由器视图设置观察者我vue
- github - 除了博客和 www 之外,Github Pages 可能还有其他自定义子域?
- python - 使用 Python 和 BeautifulSoup 提取 CME 数据
- python - 在 if 条件下使用 numpy 数组会导致问题,如何解决?
- php - Laravel 7“给定邮箱中的地址不符合 RFC 2822, 3.6.2。”
- json - Swift 根据查询字符串过滤包中的 Json 文件
- gtk3 - 如何从 GDKColor 转换为 GDKRGBA 结构?
- jquery - 双击基诺网格中的一行时如何获取行ID?
- javascript - 从多个标记单个图标 - vue.js
- arduino - Arduino SPI 时钟相位与所有 4 种模式的数据同步,怎么了?