Este erro “Apenas o alvo Win32 é suportado” vem do cc1plus errado?

1

Estou tentando cruzar a compilação Hyperion para um Windows de 32 bits em um Debian Linux de 64 bits, mas tive alguns problemas ao fazê-lo.

Primeiro de tudo, na tentativa de instalar um compilador cruzado, instalei o mingw32 no linux. Não tenho certeza se instalei a versão correta ou não, pois havia muitos pacotes semelhantes. Eventualmente, eu localizo e leio um readme.txt e aprendo que o i686-w64-mingw32-gcc deve ser o compilador correto do Windows C de 32 bits, mas havia duas versões do i686-w64-mingw32-gcc que podem ser o que Eu estou procurando: i686-w64-mingw32-gcc e i686-w64-mingw32-gcc-win32. Então eu escolhi usar o i686-w64-mingw32-gcc-win32.

Em seguida, reclama-se por não conseguir localizar o cc1plus. Um local desse arquivo me levou a / usr / lib / gcc / x86_64-linux-gnu / 5 /. Fui em frente criando um link em / usr / bin para / usr / lib / gcc / x86_64-linux-gnu / 5 / cc1plus.

Depois, reclama-se sobre falta de windows.h. Eu localizo em / usr / i686-w64-mingw32 / include /. Depois de adicionar a opção -I ao caminho para CFLAGS, recebi vários erros estranhos. Entre eles está o seguinte:

/usr/i686-w64-mingw32/include/_mingw.h:264:2: error: #error Only Win32 target is supported!

Agora estou preso. Não tenho certeza qual foi o passo errado. Eu suspeito que pode ser o erro do cc1plus I errado, mas eu não sei como obter a versão correta se isso estiver errado.

    
por Ice Drake 09.12.2016 / 07:40

1 resposta

4

O cc1plus vinculado é o compilador C ++ normal, não o compilador cruzado do Windows. Você nunca deve precisar consertar os componentes internos do GCC; o erro cc1plus indica que algo está errado.

No seu caso, você precisa instalar o mingw-w64 ( apt-get install mingw-w64 ). Isso instalará um compilador cruzado C e C ++ para o Windows e os arquivos de cabeçalho e bibliotecas apropriados. Em seguida, use i686-w64-mingw32 como o destino; i686-w64-mingw32-gcc deve funcionar bem. (Veja o README.Debian em /usr/share/doc/gcc-mingw-w64-base para detalhes do -win32 v. -posix stuff; os padrões devem funcionar bem para você.)

    
por 09.12.2016 / 08:18