__uint128_t на mingw gcc

Я пытаюсь скомпилировать c-программу под mingw gcc. Эта программа использует целое число __uint128_t. Когда я пытаюсь скомпилировать его под стандартным ubuntu gcc на той же 64-битной машине, он отлично работает. Но тогда, когда я пытаюсь скомпилировать его для windows под mingw, он просто не распознает ключевое слово __uint128_t. Что это значит? Не существует 128 битных целых чисел в mingw? Если нет, существует ли какой-либо язык программирования для окон, у которых есть встроенные (и FAST) 128-битные целые числа?

7
задан Matteo Monti 24 авг. '11 в 14:05
источник поделиться
3 ответов

Мне удалось получить такую ​​же проблему, используя Code:: Blocks и установку по умолчанию mingw (которая является IA32 btw), однако, когда я установил TDM-MinGW64, он скомпилирован отлично (после добавления компилятора x64 к C:: B). Поэтому убедитесь, что ваша mingw-сборка ориентирована на x64 (с -m64), и это x64-сборка mingw, так как __uint128_t является дополнительным расширением x64 ABI.

любая используемая вами IDE Windows не будет забирать __int128_t в качестве ключевого слова, хотя в качестве ее специального расширения GCC (как указано).

5
ответ дан Necrolis 24 авг. '11 в 14:52
источник поделиться

Вам нужно

  • относительно недавняя версия gcc
  • версия, скомпилированная с встроенной поддержкой 64-битного целого числа

__int128_t затем эмулируется с помощью пар int64_t так же, как 64-битные целые числа эмулируются с 32-битным, если они недоступны в 32-битных компиляторах

5
ответ дан Jens Gustedt 24 авг. '11 в 14:29
источник поделиться

Но тогда, когда я пытаюсь скомпилировать его для окон под mingw, он просто не распознает ключевое слово __uint128_t. Что это значит? Не существует 128 битных целых чисел при mingw?

Выполните gcc -dM -E - < /dev/null | grep INT128. Если он выдает макрос #define __SIZEOF_INT128__ 16, тогда доступен __uint128_t. Если он не выводит макрос или его меньше 16, то __uint128_t недоступен.

Также см. 128-битное целое - бессмысленная документация? в списке рассылки пользователей GCC.

0
ответ дан jww 11 янв. '17 в 5:14
источник поделиться

Другие вопросы по меткам