提示:Win10,x64
今天我开始尝试使用Visual Studio 2015,弄清楚如何运行C/C++部分后,我试图加载一个使用非官方glsdk的大型个人项目。我试图构建并获得了链接器错误。它抱怨在freeglutD.lib、glloadD.lib和glutil.lib中引用了未解析的外部符号。它还抱怨我的文件中_MSC_VER不匹配。
我在网上进行了一些研究,尝试使用2013和编译器版本(项目属性->常规->平台工具集)-v120用于2013和v140用于2015,并成功使用v140重新构建了glsdk(由于缺少文件而排除glmesh)。然后……它可以正常工作。
问题:为什么会这样?我认为由符合标准的编译器创建的静态库文件应该与其他版本的符合标准的编译器(在此情况下,v120和v140上的C/C++)一起使用。但是显然,v140无法使用以前编译器创建的库。
如果这只是VS构建例程的黑暗领域,那么我可以放弃这个问题,但我也想知道为什么它们不能一起工作。