2017-09-28 90 views
0

更新:使用catch 1.9.7解决了这个问题。使用Visual Studio 2008编译捕获时的错误

我刚刚开始使用catch并且一直无法获得一个简单的测试项目来编译。我正在使用Visual Studio 2008并具有catch.hpp v1.10.0(单个文件版本)。

我在catch教程后面创建了一个简单的测试项目。 main.cpp中是唯一的文件和代码包括:

#define CATCH_CONFIG_MAIN 
#include "catch.hpp" 

TEST_CASE("test case 1") 
{ 
    REQUIRE(1==2); 
} 

我收到以下错误,当我编译:

c:\utilities\catch\catchtest\catchtest\catch.hpp(1333) : warning C4181: qualifier applied to reference type; ignored 
c:\utilities\catch\catchtest\catchtest\catch.hpp(1838) : see reference to class template instantiation 'Catch::Internal::Evaluator<T1,T2,Op>' being compiled 
with 
[ 
    T1=const int &, 
    T2=const int &, 
    Op=IsEqualTo 
] 
c:\utilities\catch\catchtest\catchtest\catch.hpp(1836) : while compiling class template member function 'void Catch::BinaryExpression<LhsT,Op,RhsT>::endExpression(void) const' 
with 
[ 
    LhsT=const int &, 
    Op=IsEqualTo, 
    RhsT=const int & 
] 
c:\utilities\catch\catchtest\catchtest\main.cpp(8) : see reference to class template instantiation 'Catch::BinaryExpression<LhsT,Op,RhsT>' being compiled 
with 
[ 
    LhsT=const int &, 
    Op=IsEqualTo, 
    RhsT=const int & 
] 
c:\utilities\catch\catchtest\catchtest\catch.hpp(1333) : error C2529: 'lhs' : reference to reference is illegal 
c:\utilities\catch\catchtest\catchtest\catch.hpp(1333) : warning C4181: qualifier applied to reference type; ignored 
c:\utilities\catch\catchtest\catchtest\catch.hpp(1333) : error C2529: 'rhs' : reference to reference is illegal 
c:\utilities\catch\catchtest\catchtest\catch.hpp(1838) : error C2664: 'Catch::Internal::Evaluator<T1,T2,Op>::evaluate' : cannot convert parameter 1 from 'const int' to 'const int &(&)' 
with 
[ 
    T1=const int &, 
    T2=const int &, 
    Op=IsEqualTo 
] 
c:\utilities\catch\catchtest\catchtest\catch.hpp(1839) : error C2228: left of '.endExpression' must have class/struct/union 

任何援助将不胜感激。我一直无法在捕获文档或在线找到任何东西,并且急于开始使用它。

回答

0

以供将来参考:用于MSVC 9支持由this commit破碎和还原b6e7c9bd7a160c07c5de894292022687895c17a3(在其顶部进行),然后这个人是足以解决问题。

相关问题