c++ - 在 c++ vs140 (Visual Studio 2015) 下编译的 Visual Studio 项目中使用在 vs80 (Visual Studio 2005) 下编译 C++ 的静态库

标签 c++ visual-studio visual-studio-2015 visual-studio-2005 static-libraries

是否可以在 Visual Studio 2015 c++ 项目 (vs140) 中使用使用 vs80 (Visual Studio 2005) 编译的 C++ 静态库 (.lib)?

在类似问题中,我发现'Can I use a Visual Studio 6 compiled C++ static library in Visual Studio 2008?' ,在这种情况下,答案似乎是“是的,但有警告”,但我对静态库缺乏经验,想知道在 vs80 到 vs140 下编译的 c++ 静态库是否也是如此。

编辑:我想补充一点,我尝试移植的库相当小且简单,并且不访问全局变量或以任何方式依赖“extern C”

最佳答案

通常,您需要使用完全相同相同的编译器来构建所有代码(包括您使用的库)。无法保证不同编译器(甚至不同的次要版本)生成的代码可以链接在一起并产生可用的结果 - 有时它可能似乎可以工作,但稍后会变得令人讨厌且难以诊断问题在运行时,所以不要这样做。

关于c++ - 在 c++ vs140 (Visual Studio 2015) 下编译的 Visual Studio 项目中使用在 vs80 (Visual Studio 2005) 下编译 C++ 的静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39496432/

相关文章:

.net - 为什么 UWP 类库项目引用被复制到主项目?

c++ - 为什么 protobuf 只读取最后一条消息作为输入结果?

c++ - 为什么我必须调用 operator<< 作为 SFINAE 使用 void_t 的方法?

visual-studio - 如何在 VS 2019 状态栏中禁用 Resharper 消息?

c# - Visual Studio Code 分析——微软自己照做吗?

c# - 查找资源字典的设计时错误 - 项目之间不一致

c++ - 如果我不给它一点额外的空间,弦就会发疯。谁能解释这里发生了什么?

java - JNI SetFloatArrayElement() 不工作

c# - Entity Framework : How can I use more then one context and stay synchronized?

c - WTSRegisterSessionNotification 导致进程挂起