2017-09-28 10 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

最新のCatchのマスターは最新のC++コンパイラ用で、Visual Studio 2008コンパイラはかなり古いものです。キャッチをinclude'ing#前に定義された「CATCH_CONFIG_NO_CPP11」でそれを試してみてください

https://github.com/philsquared/Catch/blob/master/docs/configuration.md

:あなたはいくつかの機能をダウングレードするために使用できるいくつかのスイッチがあります。

+0

運がない、まだ同じエラーがあります。 – JMayer

0

今後の参考資料:MSVC 9のサポートはthis commitで壊れており、その上にb6e7c9bd7a160c07c5de894292022687895c17a3(これを実行した)を元に戻してから問題を解決するのに十分です。

関連する問題