Boost test vs2013 fatal error C1001

Posted opencascade

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Boost test vs2013 fatal error C1001相关的知识,希望对你有一定的参考价值。

Boost test vs2013 fatal error C1001

Boost test库提供了一个用于单元测试的基于命令行界面的测试套件UTF:Unit Test Framework,具有单元测试、检测内存泄露、监控程序运行的功能。根据官网介绍boost支持很多编译器。然而在Visual Studio 2013中使用boost的test模块时会报致命错误,如下图所示:

技术图片

输出报错信息如下:

1>------ Build started: Project: Test, Configuration: Debug Win32 ------

1>  main.cpp

1>d:\\boost_1_70_0\\boost\\type_traits\\common_type.hpp(47): fatal error C1001: An internal error has occurred in the compiler.

1>  (compiler file ‘msc1.cpp‘, line 1325)

1>   To work around this problem, try simplifying or changing the program near the locations listed above.

1>  Please choose the Technical Support command on the Visual C++ 

1>   Help menu, or open the Technical Support help file for more information

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

 技术图片

定位到报错文件是common_type.hpp

 技术图片

可以看出是因为CXX11的原因,因为VS2013不支持C++11,要么升级VS2013,打上支持CXX11的补丁,要么使用如下方法:

所以boost提供了一个宏定义来设置是否支持CXX11:

BOOST_NO_CXX11_TEMPLATE_ALIASES

在Project->Properties->C/C++->Preprocessor中设置即可:

 技术图片

   在Visual Studio 2013中使用boost的test模块时会报致命错误,是因为VS2013没有完全支持CXX11标准。通过一个宏定义可以在不支持CXX11标准的编译器上继续使用boost.

以上是关于Boost test vs2013 fatal error C1001的主要内容,如果未能解决你的问题,请参考以下文章

怎样在VS2013中安装配置boost

VS2013编译64位boost

在VS2013下配置BOOST库

vs2010 编译boost库

vs2013 boost signals

VS2013中安装配置和使用Boost库