quarta-feira, janeiro 06, 2010

The order of the include files make a difference.

Yesterday I was facing some problems to use Google C++ Testing Framework (version 1.4.0).

I got a bunch of error messages from Visual Studio 2005 that you can see below.

Error    1    error C2766: explicit specialization; 'std::numeric_limits' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\limits    482    
Error    2    error C2766: explicit specialization; 'std::iterator_traits' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\xutility    678    
Error    3    error C2766: explicit specialization; 'std::_Ptr_cat_helper' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\xutility    1143    
Error    4    error C2766: explicit specialization; 'std::_Ptr_cat_helper' has already been defined    c:\arquivos de programas\microsoft visual studio 8\vc\include\xutility    1149    

To make a long story short: the order of the include files made a difference. I put line
#include <gtest/gtest.h>
before all other include files and my problems vanished!

Nenhum comentário: