Como compilar um aplicativo de 64 bits usando o Visual C ++ 2010 Express?

128

Existe uma maneira simples de compilar um aplicativo de 64 bits com a edição de 32 bits do Visual C ++ 2010 Express? Quais configurações, se houver, são necessárias?

Nathan Osman
fonte

Respostas:

181

Aqui estão as instruções passo a passo:

  1. Baixe e instale o Windows Software Development Kit versão 7.1. O Visual C ++ 2010 Express não inclui um compilador de 64 bits, mas o SDK inclui. Um link para o SDK: http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
  2. Mude a configuração do seu projeto. Vá para Propriedades do seu projeto. Na parte superior da caixa de diálogo, haverá um menu suspenso "Configuração". Certifique-se de selecionar "Todas as configurações". Também haverá um menu suspenso "Plataforma" que exibirá "Win32". Finalmente, à direita, há um botão "Configuration Manager" - pressione-o. Na caixa de diálogo exibida, localize seu projeto, clique no menu suspenso Plataforma, selecione Novo e selecione x64. Agora altere o menu suspenso "Plataforma de solução ativa" para "x64". Quando você retornar à caixa de diálogo Propriedades, o menu suspenso "Plataforma" agora deve exibir "x64".
  3. Por fim, altere seu conjunto de ferramentas. No menu Propriedades do seu projeto, em Propriedades da configuração | Geral, altere o Platform Toolset de "v100" para "Windows7.1SDK".

Essas etapas funcionaram para mim, de qualquer maneira. Mais detalhes sobre a etapa 2 podem ser encontrados em uma referência da Microsoft mencionada em um pôster anterior: http://msdn.microsoft.com/en-us/library/9yb4317s.aspx .

Matt
fonte
2
Parabéns - sua resposta acabou de ganhar 275 representantes. Obrigado por uma resposta incrível!
Nathan Osman
Eu tenho o Windows XP, mas o SDK é para o Windows 7. Isso ainda funcionará?
0x499602D2
@ 0x499602D2: Eu não sei. Espero que, se as versões do Visual C ++ e SDK fossem as mesmas, seria. Você tentou?
Matt
2
Isso funcionou para mim somente após a instalação dos patches 3 e 4 mencionados aqui: stackoverflow.com/a/8334985/429873 #
Dmitry Trofimov
1
@ Matt: tudo isso funciona para mim no WinXP 64bit. Qual é o motivo para alterar o Platform Toolset para Win7.1SDK?
precisa saber é o seguinte
48

Ferramentas de 64 bits não estão disponíveis no Visual C ++ Express por padrão. Para habilitar ferramentas de 64 bits no Visual C ++ Express, instale o SDK (Windows Software Development Kit), além do Visual C ++ Express. Caso contrário, ocorrerá um erro ao tentar configurar um projeto para direcionar uma plataforma de 64 bits usando o Visual C ++ Express.

Como configurar projetos do Visual C ++ para direcionar plataformas de 64 bits

Ref: http://msdn.microsoft.com/en-us/library/9yb4317s.aspx

VOCÊS
fonte
isso está disponível para o VB 2010 Express?
Remus Rigo
Por alguma razão, meu $ (WindowsSdkDir) não parecia funcionar direito, mas depois que adicionei manualmente os caminhos absolutos, ele funcionou como um campeão.
Rogerdpack # 21/11
5
Depois de seguir as instruções, continuei obtendo páginas de propriedades em branco para a plataforma x64. Eu tive que instalar a atualização dos compiladores aqui . Mais informações em KB2519277 .
kipkennedy
14

E baixe o Windows7 .1 SDK, não apenas o Windows 7. Isso me deixou com muita cabeça latejando.

Jamie Fristrom
fonte
9

Eu encontrei uma etapa importante para adicionar a isso - depois de instalar o SDK, vá para as propriedades do seu projeto e altere Propriedades de configuração-> Geral-> Platform Toolset da v100 ou o que for para Windows7.1SDK. Isso muda $ (WindowsSdkDir) para o local apropriado e parecia resolver outras dificuldades que eu também estava encontrando.

Matt
fonte
5

Observe que os compiladores do Visual C ++ são removidos quando você atualiza o Visual Studio 2010 Professional ou Visual Studio 2010 Express para o Visual Studio 2010 SP1 se o Windows SDK v7.1 estiver instalado.

Para obter instruções sobre como resolver isso, consulte o site KB2519277 no site de suporte da Microsoft.


fonte
5
Seria melhor servir como um comentário, pois na verdade não responde à pergunta em questão.
Security Hound
4

Faça o download do Windows SDK e vá para Exibir-> Propriedades-> Gerenciador de configuração-> Plataforma de solução ativa-> Novo-> x64.

duduong
fonte
1
qual é o programa para rodar? Não encontrei nenhum programa com uma "Visualização" disponível
Stéphane Laurent
3

A programação em um ambiente de 64 bits é bem diferente do ambiente de 32 bits. O código gerado possui uma constituição de montagem totalmente diferente no código de 32 e 64 bits, mesmo os protocolos de comunicação com as funções mudam. Portanto, você não pode gerar código de 64 bits usando o compilador de 32 bits.

Você pode querer ver um artigo no site da Microsoft sobre como segmentar um destino de 64 bits, mas usando uma máquina de desenvolvimento de 32 bits.

perilbrain
fonte
A resposta dada é de acordo com a documentação da Intel
perilbrain
Sim, é verdade que quaisquer dependências precisarão ser (re) compiladas usando o compilador de 64 bits também, ou a etapa do link falhará.
Rogerdpack
2

Como Jakob disse: o Windows SDK 7.1 não pode ser instalado se houver tempos de execução do MS VC ++ x64 e x86 e redisrtibutables da versão 10.0.40219. depois de removê-los, a instalação do win sdk está correta, o VS C ++ SP1 pode ser instalado corretamente novamente.

Atenciosamente

Hadrien Huvelle
fonte