Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Visual Studio 2022 introduz um conjunto nativo de ferramentas C++ para o desenvolvimento do Subsistema Windows para Linux versão 2 (WSL 2). Este conjunto de ferramentas está disponível agora na versão 17.0 do Visual Studio 2022 ou superior.
O WSL 2 é a nova versão recomendada do Subsistema Windows para Linux (WSL). Ele fornece melhor desempenho do sistema de arquivos Linux, suporte a GUI e compatibilidade total com chamadas de sistema. O conjunto de ferramentas WSL 2 do Visual Studio permite usar o Visual Studio para compilar e depurar código C++ em distribuições WSL 2 sem adicionar uma ligação SSH. Já pode compilar e depurar código C++ em distribuições WSL 1 usando o conjunto nativo de ferramentas WSL 1 introduzido em Visual Studio versão 16.1 de 2019.
O conjunto de ferramentas WSL 2 do Visual Studio suporta tanto projetos Linux baseados em CMake como no MSBuild. CMake é a nossa recomendação para todo o desenvolvimento multiplataforma em C++ com Visual Studio. Recomendamos o CMake porque compila e depura o mesmo projeto no Windows, WSL e sistemas remotos.
Para uma apresentação em vídeo da informação deste tema, veja Vídeo: Depurar C++ com Distribuições WSL 2 e Visual Studio 2022.
Plano de fundo do conjunto de ferramentas do WSL 2
O suporte multiplataforma C++ no Visual Studio assume que todos os ficheiros fonte têm origem no sistema de ficheiros Windows. Ao direcionar uma distribuição WSL 2, Visual Studio executa um comando local rsync para copiar ficheiros do sistema de ficheiros Windows para o sistema WSL. A cópia local rsync não requer nenhuma intervenção do usuário. Acontece automaticamente quando o Visual Studio deteta que estás a usar uma distribuição WSL 2. Para saber mais sobre as diferenças entre WSL 1 e WSL 2, consulte Comparando WSL 1 e WSL 2.
A integração do CMake Presets no Visual Studio suporta o conjunto de ferramentas WSL 2. Para saber mais, veja Integração de CMake Presets no Visual Studio e Visual Studio Code e Configuração e construção com CMake Presets no Visual Studio. Há também informações mais avançadas neste artigo em Considerações sobre projetos avançados WSL 2 e CMake.
Instalar as ferramentas de compilação
Instale as ferramentas necessárias para compilar e depurar no WSL 2. Instala uma versão recente do CMake usando a implementação binária CMake do Visual Studio numa etapa posterior.
Instale o WSL e uma distro WSL 2 seguindo as instruções em Instalar WSL.
No instalador Visual Studio, verifica se as ferramentas CMake C++ para Linux estão instaladas. Para isso, escolha Modify para a sua versão do Visual Studio. No separador Componentes Individuais , procura por ferramentas CMake em C++ para Linux e Mac e certifica-te de que está selecionada e instalada. Este componente é necessário para que o Visual Studio detete as suas instalações WSL.
Supondo que sua distro use
apt(este passo a passo usa o Ubuntu), use os seguintes comandos para instalar as ferramentas de compilação necessárias em sua distro WSL 2:sudo apt update sudo apt install cmake g++ gdb make ninja-build rsync zipQue instala:
- Um compilador C++
gdbCMakersynczip- Um gerador de sistema de compilação subjacente
Desenvolvimento CMake multiplataforma com uma distro WSL 2
Este passo a passo usa GCC e Ninja no Ubuntu. E Visual Studio 2022 versão 17.0 Preview 2 ou posterior.
Visual Studio define um projeto CMake como uma pasta com um ficheiro CMakeLists.txt na raiz do projeto. Neste tutorial, cria um novo projeto CMake utilizando o modelo Visual Studio CMake Project:
No ecrã Visual Studio Começar, selecione Criar um novo projeto.
As opções disponíveis são: Clonar um repositório, Abrir um projeto ou solução, Abrir uma pasta local, Criar um novo projeto ou Continuar sem código.":::Na caixa de texto Pesquisar modelos , digite "cmake". Escolha o tipo CMake Project e selecione Próximo. Dê ao projeto um nome e um local e selecione Criar.
Ative a integração dos Presets CMake do Visual Studio. Selecione Ferramentas>Opções>CMake>Geral. Selecione Preferir usar predefinições do CMake para configurar, compilar e testar e, em seguida, selecione OK. Em alternativa, pode adicionar um
CMakePresets.jsonficheiro à raiz do projeto. Para obter mais informações, consulte Habilitar a integração de predefinições do CMake.
No grupo de arquivos de configuração do CMake, 'Usar predefinições do CMake se disponíveis, caso contrário, use CMakeSettings.json' está destacado e selecionado.
Para ativar a integração: no menu principal, selecione File>Close Folder. A página Introdução é exibida. Em Abrir recente, selecione a pasta que acabou de fechar para reabri-la.
Existem três menus suspensos na barra de menu principal do Visual Studio. Utilize a lista suspensa à esquerda para selecionar o seu sistema-alvo ativo. Este é o sistema onde o CMake é invocado para configurar e construir o projeto. Visual Studio procura instalações WSL com
wsl -l -v. Na imagem a seguir, WSL2: Ubuntu-20.04 é mostrado selecionado como o sistema de destino.
Observação
Se o Visual Studio começar a configurar o seu projeto automaticamente, leia o passo 11 para gerir a implementação binária do CMake e depois continue para o passo seguinte. Para personalizar esse comportamento, consulte Modificar a configuração automática e as notificações de cache.
Utilize a lista suspensa no meio para selecionar a sua predefinição de configuração ativa. O Configure Presets indica ao Visual Studio como invocar o CMake e gerar o sistema de compilação subjacente. No passo 7, o Configurar Preset ativo é o Preset linux-default criado por Visual Studio. Para criar uma predefinição de configuração personalizada, selecione Gerenciar configurações... Para obter mais informações sobre Configurar predefinições, consulte Selecionar uma configuração de predefinição e Editar predefinições.
Captura de ecrã do menu pendente da configuração ativa predefinida do Visual Studio. Gerir Configurações... está selecionada. Use a lista suspensa à direita para selecionar a sua predefinição de construção ativa. Os Presets de Build dizem ao Visual Studio como invocar o build. Na ilustração do passo 7, a Predefinição de Compilação ativa é a Predefinição de Compilação Default criada pelo Visual Studio. Para obter mais informações sobre predefinições de compilação, consulte Selecionar uma predefinição de compilação.
Configure o projeto no WSL 2. Se a geração do projeto não começar automaticamente, então invoque manualmente configure com Project>Configureproject-name
Se não tiver uma versão suportada do CMake instalada na sua distribuição WSL 2, então o Visual Studio pede, por baixo da barra de menu principal, para instalar uma versão recente do CMake. Selecione Sim para implantar binários do CMake em sua distro WSL 2.
O utilizador é questionado se deve instalar os binários mais recentes do CMake a partir do CMake. org porque a versão C Make suportada não está instalada."
Confirme se a etapa de configuração foi concluída e se você pode ver a mensagem de conclusão da geração do CMake na janela Saída no painel CMake . Os arquivos de compilação são gravados em um diretório no sistema de arquivos da distro WSL 2.
Selecione o destino de depuração ativo. O menu suspenso de depuração lista todos os alvos CMake disponíveis para o projeto.
Expande a subpasta do projeto na Explorador de Soluções.
CMakeProject.cppNo arquivo, defina um ponto de interrupção emmain(). Também pode navegar até à vista de alvos do CMake selecionando o botão View Picker no Explorador de Soluções, destacado na seguinte captura de ecrã:
Selecione Depurar>Início ou pressione F5. O teu projeto é compilado, o executável é iniciado na tua distribuição WSL 2, e o Visual Studio pára a execução no ponto de interrupção. A saída do seu programa (neste caso,
"Hello CMake.") é visível na janela do console do Linux:
A janela da consola Linux do Visual Studio mostra a saída do programa: 'Hello C Make.' A janela do editor mostra o programa hello world. A execução parou em um ponto de interrupção na linha que diz retorno 0;."
Agora criou e depurou uma aplicação em C++ com WSL 2 e Visual Studio 2022.
Considerações sobre projetos avançados WSL 2 e CMake
Visual Studio fornece suporte nativo para WSL 2 apenas para projetos CMake que usam CMakePresets.json como ficheiro de configuração ativo. Para migrar de CMakeSettings.json para CMakePresets.json, veja Enable CMake Presets integration in Visual Studio.
Se estiveres a apontar para uma distribuição WSL 2 e não quiseres usar o conjunto de ferramentas WSL 2, então no mapa de fornecedores de Definições Remotas Visual Studio em CMakePresets.json, define forceWSL1Toolset para true . Para mais informação, consulte Mapa do fornecedor de configurações remotas do Visual Studio.
Se forceWSL1Tooslet estiver definido para true, então Visual Studio não mantém uma cópia dos seus ficheiros de origem no sistema de ficheiros WSL. Em vez disso, acede aos ficheiros fonte na unidade de Windows montada (/mnt/...).
Na maioria dos casos, é melhor usar o conjunto de ferramentas WSL 2 com distribuições WSL 2 porque o WSL 2 é mais lento quando os ficheiros do projeto são armazenados no sistema de ficheiros do Windows. Para saber mais sobre o desempenho do sistema de arquivos no WSL 2, consulte Comparando o WSL 1 e o WSL 2.
Especifique definições avançadas, como o caminho para o diretório no WSL 2 onde o projeto é copiado, as opções de cópia de origem e os argumentos do comando rsync, no mapa de definições remotas do Visual Studio de fornecedores em CMakePresets.json. Para mais informações, consulte o mapa do fornecedor de Configurações Remotas do Visual Studio.
Os cabeçalhos do sistema continuam a ser copiados automaticamente para o sistema de ficheiros do Windows para fornecer a experiência nativa do IntelliSense. Pode personalizar os cabeçalhos que estão incluídos ou excluídos desta cópia no mapa de fornecedores de Definições Remotas Visual Studio em CMakePresets.json.
Pode alterar o modo IntelliSense, ou especificar outras opções do IntelliSense, no mapa de fornecedores das definições do Visual Studio em CMakePresets.json. Para mais detalhes sobre o mapa de fornecedores, veja Visual Studio Configurações Remotas mapa do fornecedor.
Projetos Linux baseados em WSL 2 e MSBuild
O CMake é recomendado para todo o desenvolvimento multiplataforma C++ com Visual Studio porque permite construir e depurar o mesmo projeto em Windows, WSL e sistemas remotos.
Mas você pode ter um projeto Linux baseado em MSBuild.
Se tiveres um projeto Linux baseado no MSBuild, podes atualizar para o conjunto de ferramentas WSL 2 no Visual Studio. Clique com o botão direito do mouse no projeto no gerenciador de soluções e escolha Properties>General>Platform Toolset:
Se estiver a direcionar-se para uma distribuição WSL 2 e não quiser usar o conjunto de ferramentas WSL 2, então, na lista pendente Platform Toolset, selecione o conjunto de ferramentas GCC para Subsistema Windows para Linux ou Clang para Subsistema Windows para Linux. Se algum destes conjuntos de ferramentas for selecionado, Visual Studio não mantém uma cópia dos seus ficheiros de origem no sistema de ficheiros WSL e, em vez disso, acede aos ficheiros de origem através da unidade de Windows montada (/mnt/...). Os cabeçalhos do sistema continuam a ser copiados automaticamente para o sistema de ficheiros Windows para proporcionar uma experiência nativa IntelliSense. Personalize os cabeçalhos incluídos ou excluídos desta cópia em Páginas de propriedades>Gerais.
Na maioria dos casos, é melhor usar o conjunto de ferramentas WSL 2 com distribuições WSL 2 porque o WSL 2 é mais lento quando os ficheiros do projeto são armazenados no sistema de ficheiros do Windows. Para saber mais, consulte Comparando WSL 1 e WSL 2.
Ver também
Vídeo: Depurar C++ com distribuições WSL 2 e Visual Studio 2022
Descarregar Visual Studio 2022
Criar um projeto CMake Linux em Visual Studio
Tutorial: Depurar um projeto CMake numa máquina Windows remota