gpt4 book ai didi

c++ - Visual Studio 2015 : v120 vs v140?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:31 31 4
gpt4 key购买 nike

仅供引用:Win10,x64

我今天开始试用 Visual Studio 2015,在弄清楚如何让 C/C++ 部分运行后,我尝试加载一个使用 unofficial glsdk 的大型个人项目。 .我尝试构建并遇到链接器错误。它提示在 freeglutD.lib、glloadD.lib 和 glutil.lib 中引用了未解析的外部符号。它还提示我自己的文件中有 _MSC_VER 不匹配。

我在网上做了一些研究,弄乱了 2013 和编译器版本(项目属性 -> 常规 -> 平台工具集)) - 2013 年的 v120 和 2015 年的 v140 - 并且能够用 v140 重建 glsdk(不包括 glmesh 由于丢失的文件)。然后……一切正常。

问题:这是为什么?我认为由符合标准的编译器创建的静态 lib 文件可以与其他版本的符合标准的编译器一起使用(在本例中,C/C++ on v120 和 C/C++ on v140)。但显然 v140 不会与以前的编译器制作的库一起玩。

如果这只是 VS 构建例程的黑暗之地,那么我可以放弃这个问题,但我也想知道为什么它们不能一起工作。

最佳答案

从历史上看,Visual C++ 破坏了每个主要版本的运行时库之间的二进制兼容性。这提供了一些改进实现的自由,而不受以前版本的 ABI 的限制。

然而,从 Visual C++ 2015 开始,他们重新构建了运行时库,使其能够提供向前的兼容性,但这并不能解决向后的问题。

查看此 blog post以及他们发布的关于“通用 CRT”的一些后续消息。

关于c++ - Visual Studio 2015 : v120 vs v140?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659878/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com