c++ - Errores extraños MinGW/CxxTest
(1)
Espero que puedas ayudarme. He escrito un pequeño proyecto usando CxxTest en mi máquina principal de desarrollo. Todo funciona muy bien en esta máquina, sin problemas. Sin embargo, intenté configurar este proyecto en mi nueva computadora portátil y ¡simplemente no puedo hacer que funcione! Sospecho que algo está mal con mi instalación de MinGW en lugar de CxxTest, pero es realmente difícil de saber, y los errores se originan en los archivos de CxxTest. Esta es la estructura de carpetas del proyecto:
lib/
cxxtest-4.3/
src/
TestUtils.h
test.cpp
test/
MyTestSuite.h
libstdc++-6.dll
En la línea de comando ejecuto:
cd test
../lib/cxxtest-4.3/bin/cxxtestgen --error-printer -o runner.cpp MyTestSuite.h
Esto genera runner.cpp. Ahora corro:
g++ -o runner.exe runner.cpp -I "../lib/cxxtest-4.3" -std=c++11
Esto generalmente funciona bien, generando runner.exe y ejecutando mis pruebas unitarias. En mi computadora portátil solo recibo miles de errores. Aquí hay un vistazo a los primeros:
In file included from c:/mingw/include/wchar.h:208:0,
from c:/mingw/lib/gcc/mingw32/4.9.3/include/c++/cwchar:44,
from c:/mingw/lib/gcc/mingw32/4.9.3/include/c++/bits/postypes.h:40,
from c:/mingw/lib/gcc/mingw32/4.9.3/include/c++/iosfwd:40,
from c:/mingw/lib/gcc/mingw32/4.9.3/include/c++/ios:38,
from c:/mingw/lib/gcc/mingw32/4.9.3/include/c++/istream:38,
from c:/mingw/lib/gcc/mingw32/4.9.3/include/c++/sstream:38,
from c:/mingw/lib/gcc/mingw32/4.9.3/include/c++/complex:45,
from ../lib/cxxtest-4.3/cxxtest/StdHeaders.h:24,
from ../lib/cxxtest-4.3/cxxtest/StdValueTraits.h:22,
from ../lib/cxxtest-4.3/cxxtest/ValueTraits.h:400,
from ../lib/cxxtest-4.3/cxxtest/TestSuite.h:24,
from ../lib/cxxtest-4.3/cxxtest/RealDescriptions.h:20,
from ../lib/cxxtest-4.3/cxxtest/TestRunner.h:22,
from runner.cpp:11:
c:/mingw/include/sys/stat.h:173:14: error: ''_dev_t'' does not name a type
struct _stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:173:14: error: ''_ino_t'' does not name a type
struct _stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:173:14: error: ''_mode_t'' does not name a type
struct _stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:173:14: error: ''_dev_t'' does not name a type
struct _stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:173:14: error: ''_off_t'' does not name a type
struct _stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:173:14: error: ''time_t'' does not name a type
struct _stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:173:14: error: ''time_t'' does not name a type
struct _stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:173:14: error: ''time_t'' does not name a type
struct _stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:180:13: error: ''_dev_t'' does not name a type
struct stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:180:13: error: ''_ino_t'' does not name a type
struct stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:180:13: error: ''_mode_t'' does not name a type
struct stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:180:13: error: ''_dev_t'' does not name a type
struct stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:180:13: error: ''_off_t'' does not name a type
struct stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:180:13: error: ''time_t'' does not name a type
struct stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:180:13: error: ''time_t'' does not name a type
struct stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:180:13: error: ''time_t'' does not name a type
struct stat __struct_stat_defined( _off_t, time_t );
^
c:/mingw/include/sys/stat.h:188:17: error: ''_dev_t'' does not name a type
struct _stati64 __struct_stat_defined( __off64_t, time_t );
^
c:/mingw/include/sys/stat.h:188:17: error: ''_ino_t'' does not name a type
struct _stati64 __struct_stat_defined( __off64_t, time_t );
^
c:/mingw/include/sys/stat.h:188:17: error: ''_mode_t'' does not name a type
struct _stati64 __struct_stat_defined( __off64_t, time_t );
^
c:/mingw/include/sys/stat.h:188:17: error: ''_dev_t'' does not name a type
struct _stati64 __struct_stat_defined( __off64_t, time_t );
^
c:/mingw/include/sys/stat.h:188:17: error: ''__off64_t'' does not name a type
struct _stati64 __struct_stat_defined( __off64_t, time_t );
^
c:/mingw/include/sys/stat.h:188:17: error: ''time_t'' does not name a type
struct _stati64 __struct_stat_defined( __off64_t, time_t );
^
c:/mingw/include/sys/stat.h:188:17: error: ''time_t'' does not name a type
struct _stati64 __struct_stat_defined( __off64_t, time_t );
^
c:/mingw/include/sys/stat.h:188:17: error: ''time_t'' does not name a type
struct _stati64 __struct_stat_defined( __off64_t, time_t );
^
c:/mingw/include/sys/stat.h:195:17: error: ''_dev_t'' does not name a type
struct __stat64 __struct_stat_defined( __off64_t, __time64_t );
^
c:/mingw/include/sys/stat.h:195:17: error: ''_ino_t'' does not name a type
struct __stat64 __struct_stat_defined( __off64_t, __time64_t );
^
c:/mingw/include/sys/stat.h:195:17: error: ''_mode_t'' does not name a type
struct __stat64 __struct_stat_defined( __off64_t, __time64_t );
^
c:/mingw/include/sys/stat.h:195:17: error: ''_dev_t'' does not name a type
struct __stat64 __struct_stat_defined( __off64_t, __time64_t );
^
c:/mingw/include/sys/stat.h:195:17: error: ''__off64_t'' does not name a type
struct __stat64 __struct_stat_defined( __off64_t, __time64_t );
^
c:/mingw/include/sys/stat.h:195:17: error: ''__time64_t'' does not name a type
struct __stat64 __struct_stat_defined( __off64_t, __time64_t );
^
c:/mingw/include/sys/stat.h:195:17: error: ''__time64_t'' does not name a type
struct __stat64 __struct_stat_defined( __off64_t, __time64_t );
^
c:/mingw/include/sys/stat.h:195:17: error: ''__time64_t'' does not name a type
struct __stat64 __struct_stat_defined( __off64_t, __time64_t );
Cuando ejecuto g ++ en un simple archivo de hello world, funciona bien. ¿Alguien sabe lo que está pasando?
También actualicé recientemente MinGW y me encontré con problemas muy similares.
Después de algunas investigaciones, encontré
esta pregunta sobre SO
e intenté reemplazar
-std=c++11
con
-std=gnu++11
.
Esto resolvió el problema para mí.
¡Espero que ayude!