2013-03-31 2 views
7
c:\...random.h|106|error: expected unqualified-id before '__int128' 

Когда я компилирую 32-битную программу, вышесказанное является ошибкой, которую я получаю. Я использую http://sourceforge.net/projects/mingwbuilds/Ошибка __int128 при компиляции 32 бит

Почему? Мой код скомпилирован с 4.7.2, но я хотел обновить до 4.8 для исправлений ошибок и избавиться от 0, используемого как нулевое значение для предупреждений указателя, когда нет нулей.

Многие исправления ошибок, которые я хочу. Он компилирует мои x64, которые отлично подходят для Windows.

Есть ли способ заставить его скомпилировать приложения x32?

+1

Короткий ответ - нет. '__int128' предназначен для 64-битных систем. – Mysticial

+0

: S Но мой код не использует __int128. Компилятор может скомпилировать как x32, так и x64: S Самый высокий тип, который я использовал, был std :: uint32_t и std :: size_t – Brandon

+3

О ... звучит так, как если бы ваша установка была обработана. – Mysticial

ответ

5

__int128 защищен

! Определен (STRICT_ANSI) & & определен (_GLIBCXX_USE_INT128)

Таким образом, вы можете использовать либо -ansi (в случае, если ваш код является строго ANSI C++), я столкнулся с ошибками в компоновщике из-за того, что компоновщик не смог найти 32-битные библиотеки.

_GLIBCXX_USE_INT128

определен в "Библиотека/GCC/x86_64-W64-mingw32/4.8.1/включать/C++/x86_64-W64-mingw32/бит/C++ config.h" который, я уверен, был создан с помощью автоконфигурации, основанной на системе, где построены цепочки инструментов.

Лучше скачайте 32-битную версию на mingw gcc (бинарный) пакет и установите их тоже.