"Unknown compiler version" - Boost 认为 VS2005 编译器是 VS2015
"Unknown compiler version" - Boost thinks VS2005 compiler is VS2015
所以,我需要在同一台机器(64-but,win10)上构建 Visual Studio 2005 和 Visual Studio 2015 的项目。当切换回 2005 年构建的项目时,Boost 认为我仍在使用 2017 版编译器并抛出各种错误。主要是这个:Unknown compiler version
我的问题: Visual Studio 2015 是否在我的机器上设置了一些 boost 会查看以确定编译器版本的东西,或者 boost 是否存储了一些东西?对于我的生活,我无法弄清楚 boost 在哪里寻找这些信息。
我相信这是 boost 正在检查的地方:
#if (_MSC_VER > 1600)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message("Unknown compiler version - please run the configure tests and report the results")
# endif
#endif
_MSC_VER
设置在哪里?
要为您的 Visual Studio 版本构建 Boost.Build 系统,运行 在相应的 Visual Studio 命令提示符中的 bootstrap.bat 文件。
Boost.Build 喜欢在编译时默认使用 Visual Studio 的更高版本。当 Boost.Build 意识到你
安装了多个版本的 Visual Studio,它会创建如下环境变量:
VS140COMNTOOLS --> Visual Studio 2015
VS80COMNTOOLS --> Visual Studio 2005
您可以通过以下方式从 VC++ 14.0 编译器切换到 VC++ 8 编译器:
- 更改 VC140COMNTOOLS 环境变量的名称 - 您可以在它前面放一个 'x' 或添加 _DISABLED 到
它。
- 导航到 C:\Users{您的用户名}\AppData\Temp 并删除自动生成的脚本
"b2_msvc-8.0_{..blahblah..}.cmd"(应该有 2 个 - 一个用于 32 位版本,一个用于 64 位版本)。虽然名字
似乎是正确的,不要被愚弄 - 这个文件不经常生成并且默认为最新版本的 Visual
机器上的工作室。
完成这两个步骤后,您的编译器将正确地重新生成编译脚本并且应该可以工作。
所以,我需要在同一台机器(64-but,win10)上构建 Visual Studio 2005 和 Visual Studio 2015 的项目。当切换回 2005 年构建的项目时,Boost 认为我仍在使用 2017 版编译器并抛出各种错误。主要是这个:Unknown compiler version
我的问题: Visual Studio 2015 是否在我的机器上设置了一些 boost 会查看以确定编译器版本的东西,或者 boost 是否存储了一些东西?对于我的生活,我无法弄清楚 boost 在哪里寻找这些信息。
我相信这是 boost 正在检查的地方:
#if (_MSC_VER > 1600)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message("Unknown compiler version - please run the configure tests and report the results")
# endif
#endif
_MSC_VER
设置在哪里?
要为您的 Visual Studio 版本构建 Boost.Build 系统,运行 在相应的 Visual Studio 命令提示符中的 bootstrap.bat 文件。
Boost.Build 喜欢在编译时默认使用 Visual Studio 的更高版本。当 Boost.Build 意识到你 安装了多个版本的 Visual Studio,它会创建如下环境变量:
VS140COMNTOOLS --> Visual Studio 2015
VS80COMNTOOLS --> Visual Studio 2005
您可以通过以下方式从 VC++ 14.0 编译器切换到 VC++ 8 编译器:
- 更改 VC140COMNTOOLS 环境变量的名称 - 您可以在它前面放一个 'x' 或添加 _DISABLED 到 它。
- 导航到 C:\Users{您的用户名}\AppData\Temp 并删除自动生成的脚本 "b2_msvc-8.0_{..blahblah..}.cmd"(应该有 2 个 - 一个用于 32 位版本,一个用于 64 位版本)。虽然名字 似乎是正确的,不要被愚弄 - 这个文件不经常生成并且默认为最新版本的 Visual 机器上的工作室。
完成这两个步骤后,您的编译器将正确地重新生成编译脚本并且应该可以工作。