Estoy tratando de compilar un programa c en mingw gcc. Este programa usa un entero __uint128_t
. Cuando intento compilarlo bajo el estándar ubuntu gcc en la misma máquina de 64 bits, funciona perfectamente. Pero luego, cuando intento compilarlo para Windows bajo mingw, simplemente ni siquiera reconoce la palabra clave __uint128_t
. ¿Qué significa esto? No hay enteros de 128 bits en mingw? Si no, ¿hay algún lenguaje de programación para Windows que tenga enteros nativos (y FAST) de 128 bits?__uint128_t en mingw gcc
Respuesta
Necesitas
- una versión relativamente reciente de gcc
- una versión compilada con soporte nativo de 64 bits número entero
__int128_t
entonces se emula mediante el uso de pares de int64_t
de la misma manera como números enteros de 64 bits se emulan con 32 bits si no están disponibles en 32 bits compila
que era capaz de conseguir el mismo problema al usar Code :: Blocks y la instalación predeterminada de mingw (que es IA32 btw), sin embargo, cuando instalé TDM-MinGW64, se compiló bien (después de agregar el compilador x64 a C :: B). Así que asegúrese de que su construcción mingw esté dirigida a x64 (con -m64
) y es una versión x64 de mingw, ya que __uint128_t
es una extensión x64 ABI opcional.
Cualquiera que sea el IDE de Windows que esté utilizando no seleccionará __int128_t
como una palabra clave, ya que es una extensión especial de GCC (como se mencionó).
Pero luego, cuando intento compilarlo para windows bajo mingw, simplemente ni siquiera reconoce la palabra clave __uint128_t. ¿Qué significa esto? No hay enteros de 128 bits en mingw?
Realizar gcc -dM -E - < /dev/null | grep INT128
. Si muestra la macro #define __SIZEOF_INT128__ 16
, entonces __uint128_t
está disponible. Si no da salida a la macro o es menor que 16, entonces __uint128_t
no está disponible.
Véase también 128-bit integer - nonsensical documentation? en los usuarios del CCG lista de correo.
- 1. ¿Ilvm-gcc y clang binary son compatibles con gcc? - particularmente mingw gcc en Windows
- 2. MinGW como compilador GCC confiable de 64 bits
- 3. MinGW GCC: "Desconocido tipo de conversión carácter 'h'" (snprintf)
- 4. Compilar el conjunto de intel con gcc/mingw
- 5. MinGW GCC: compilador cruzado simple de 32 y 64 bits.
- 6. Cómo vincularse con msvcr90.dll con mingw gcc?
- 7. ¿Por qué existe Mingw?
- 8. Enchufes en MinGW
- 9. El mingw-get de MinGW falla al descargar paquetes
- 10. Cómo compilar MinGW W64
- 11. C: Biblioteca Regex con MinGW
- 12. ¿Hay fmemopen() en MinGW
- 13. Compilación de programas openCV 2.3.1 con MinGW gcc/g ++ en Windows 7 64bit
- 14. Uso de zlib en Windows mingw
- 15. std :: stoi no existe en g ++ 4.6.1 en MinGW
- 16. MinGW - Actualizar la versión 3.4.5 de GCC a la versión 4.4
- 17. ¿Cómo agrego un ícono a un ejecutable compilado de mingw-gcc?
- 18. ¿Cuál es la diferencia entre los compiladores Borland, GCC y MinGW?
- 19. ¿Extrae la información de depuración de un msys/mingw gcc built dll usando rebase.exe?
- 20. Cómo usar el compilador gcc de MinGW al instalar el paquete Python con Pip?
- 21. usando msvc lib en mingw
- 22. englobamiento con MinGW en Windows
- 23. No se puede descargar MinGW de Sourceforge
- 24. Cómo usar MinGW-w64 con Cygwin?
- 25. Mingw multiple definition of _Unwind_resume
- 26. Construyendo GLEW 1.7.0 en Windows usando MinGW
- 27. problemas para compilar freetype2 con MinGW/MSYS
- 28. guía para mingw make files mingw32-make
- 29. MinGW/Eclipse ld.exe no encuentra bibliotecas
- 30. mingw -fvisibility = hidden no parece funcionar
Realice 'gcc -dM -E - dev/null | grep INT128'. Si emite '#define __SIZEOF_INT128__ 16', entonces' __uint128_t' está disponible. Si no da salida a la macro o es menor que 16, entonces '__uint128_t' no está disponible. – jww