【问题标题】:Using static libraries compiled C++ under vs80 (Visual Studio 2005) in a Visual Studio project compiling under c++ vs140 (Visual Studio 2015)在 c++ vs140 (Visual Studio 2015) 下编译的 Visual Studio 项目中使用在 vs80 (Visual Studio 2005) 下编译的 C++ 静态库
【发布时间】:2016-09-14 17:31:03
【问题描述】:

是否可以在 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?',在这种情况下,答案似乎是“是的,但有警告”,但我对静态库缺乏经验,想知道编译的 c++ 静态库是否也是如此vs80到vs140以下。

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 这种情况下我会重新编译我所有2015年以下的静态库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多