标签:Visual Studio

共 1 篇文章

静态库与动态库的跨编译器兼容

由于当前项目维护的代码需要支持多个编译器,最近突然好奇为什么不直接在高版本的 VS 中直接使用低版本生成的库呢?起初以为是不可行,但是后面从理论上想了一下,感觉对于动态库来说应该可行,低版本生成的 DLL 依赖低版本的 C++ 运行时,高版本生成的可执行程序依赖高版本的 C++ 运行时,按照这样的设定应该没有任何问题才对。

举个例子,VS2013 生成了动态库库 A.lib 和 A.dll,VS2015 中使用了 A.lib 生成 B.exe,让我们来看下最终的依赖情况(下面 C++ 运行时库的名字以 msvc 来代替):

  • B.exe 依赖于 A.dll 和 msvc2015.dll
  • A.dll 依赖于 msvc2013.dll ...
阅读全文