使用 Visual Studio 2017 项目构建,但_MSC_VER显示 1900



我有一个项目问题,也许有人可以给我一些提示。我在解决方案中有一个项目,该项目是上次使用Visual Studio 2015创建或更新的。现在,我想用Visual Studio 2017构建这个项目。

因此,我使用参数启动批处理文件%ProgramFiles(x86)%Microsoft Visual Studio2017EnterpriseVCAuxiliaryBuildvcvarsall.bat amd64。然后,我使用命令devenv solution.sln /Upgrade升级项目。我看到以下输出:

Microsoft Visual Studio 2017 Version 15.0.27703.1.
Copyright (C) Microsoft Corp. All rights reserved.
Upgrading project 'project1'...
Configuration 'Debug|Win32': changing Platform Toolset to 'v141' (was 'v140').
Configuration 'Debug|x64': changing Platform Toolset to 'v141' (was 'v140').
Configuration 'Release|Win32': changing Platform Toolset to 'v141' (was 'v140').
Configuration 'Release|x64': changing Platform Toolset to 'v141' (was 'v140').
Migration completed successfully, but some warnings were detected during migration.
For more information, see the migration report:
C:pathtoprojectUpgradeLog.htm

在这个UpgradeLog.htm,我只看到这个警告:

solution.sln: Visual Studio needs to make non-functional changes to this project in order to enable the project to open in released versions of Visual Studio newer than Visual Studio 2010 SP1 without impacting project behavior.

然后,当项目构建时,我在构建项目时看到此消息(我删除了真正的项目名称、源文件的名称和此处的真实路径。这应该不是问题(:

ClCompile:
C:Program Files (x86)Microsoft Visual Studio2017EnterpriseVCToolsMSVC14.14.26428binHostX86x64CL.exe /c /Iinclude /IC:pathtootherinclude /Zi /nologo /W3 /WX- /diagnostics:classic /MP /O2 /Ob2 /Ot /Oy- /GL /D WIN64 /D NDEBUG /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Releasex64\" /Fd"C:pathtodebugsymbolsdebug.pdb" /Gd /TP /FC /errorReport:queue c1.cpp c2.cpp c3.cpp
c1.cpp
c2.cpp
c3.cpp
Unknown compiler version - please run the configure tests and report the results
Unknown compiler version - please run the configure tests and report the results
Unknown compiler version - please run the configure tests and report the results
Lib:
C:Program Files (x86)Microsoft Visual Studio2017EnterpriseVCToolsMSVC14.14.26428binHostX86x64Lib.exe /OUT:"C:pathtolibproject.lib" some_other.lib /LIBPATH:C:pathtootherlib64 /NOLOGO /MACHINE:X64 /LTCG Releasex64c1.obj
Releasex64c2.obj
Releasex64c3.obj

但是后来,当我使用命令find "_MSC_VER" project.lib在文件project.lib中搜索_MSC_VER时,我得到了以下输出(多次(:

/FAILIFMISMATCH:"_MSC_VER=1900"

但是我希望得到这个输出(因为使用Visual Studio 2017构建(:

/FAILIFMISMATCH:"_MSC_VER=1910"

这怎么可能?

>/FAILIFMISMATCH:"_MSC_VER=1900"表示该文件是使用 MSVC++ 14.0(平台工具集 v140(生成的。由于根据升级日志,project1已迁移到 v141,因此我认为

  • 它尚未重建,并且您正在链接到旧的.obj文件;或
  • 您看到的消息来自其他人构建的对象文件 面向 v140 的项目。

关于编译时消息,我怀疑您使用的 Boost 库不晚于 1.62 - 您可以在 visualc.hpp 标头底部看到版本检查和消息。如果是这种情况,则需要更新 Boost 库或将平台工具集更改回 v140。

相关内容

  • 没有找到相关文章

最新更新