Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Visual Studio 2022 apresenta um conjunto de ferramentas C++ nativo para o desenvolvimento do Windows Subsystem for Linux versão 2 (WSL 2). Este conjunto de ferramentas está disponível agora no Visual Studio 2022 versão 17.0 ou superior.
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 que você use o Visual Studio para criar e depurar código C++ em distros WSL 2 sem adicionar uma conexão SSH. Você já pode criar e depurar código C++ em distros WSL 1 usando o conjunto de ferramentas WSL 1 nativo introduzido no Visual Studio 2019 versão 16.1.
O conjunto de ferramentas WSL 2 do Visual Studio suporta projetos Linux baseados em CMake e MSBuild. CMake é nossa recomendação para todo o desenvolvimento de plataforma cruzada C++ com Visual Studio. Recomendamos o CMake porque ele cria e depura o mesmo projeto no Windows, WSL e sistemas remotos.
Para uma apresentação em vídeo das informações neste tópico, consulte 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 a plataforma cruzada C++ no Visual Studio pressupõe que todos os arquivos de origem tenham origem no sistema de arquivos do Windows. Ao direcionar-se para uma distro WSL 2, o Visual Studio executa um comando local rsync para copiar ficheiros do sistema de ficheiros do Windows para o sistema de ficheiros WSL. A cópia local rsync não requer nenhuma intervenção do usuário. Ele ocorre automaticamente quando o Visual Studio deteta que você está usando uma distro 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 de predefinições do CMake no Visual Studio suporta o conjunto de ferramentas do WSL 2. Para saber mais, consulte Integração de predefinições do CMake no Visual Studio e Visual Studio Code e Configurar e compilar com predefinições do CMake 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. Você instalará uma versão recente do CMake usando a implantação binária CMake do Visual Studio em uma etapa posterior.
Instale o WSL e uma distro WSL 2 seguindo as instruções em Instalar 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 g++ gdb make ninja-build rsync zipOs
aptcomandos acima instalam:- 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 o Visual Studio 2022 versão 17.0 Preview 2 ou posterior.
Visual Studio define um projeto CMake como uma pasta com um CMakeLists.txt arquivo na raiz do projeto. Nesta explicação passo a passo, você cria um novo projeto CMake usando o modelo de projeto CMake do Visual Studio:
Na tela Introdução do Visual Studio, 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 de projeto CMake e selecione Avançar. Dê ao projeto um nome e um local e selecione Criar.
Habilite a integração de predefinições 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 vez disso, você poderia ter adicionado um
CMakePresets.jsonarquivo à 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.
Há 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. Consultas do Visual Studio para 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 seu projeto automaticamente, leia a etapa 11 para gerenciar a implantação binária do CMake e continue para a etapa abaixo. 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. Configurar predefinições informa ao Visual Studio como invocar o CMake e gerar o sistema de compilação subjacente. Na etapa 7, a configuração predefinida ativa é o preset linux-default criado pelo 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.
Use a lista suspensa à direita para selecionar a sua predefinição de construção ativa. As predefinições de compilação informam ao Visual Studio como invocar a compilação. Na ilustração da etapa 7, a predefinição de compilação ativa é a predefinição de compilação padrão 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 for iniciada automaticamente, invoque manualmente configure com Project>Configureproject-name
Se não tiveres uma versão suportada do CMake instalada na tua distro WSL 2, o Visual Studio solicitará abaixo da faixa de opções do menu principal para instalares 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.
Expanda a subpasta do projeto no Gerenciador de Soluções.
CMakeProject.cppNo arquivo, defina um ponto de interrupção emmain(). Você também pode navegar para ver os alvos CMake selecionando o botão Selector de Vista no Gerenciador de Soluções, realçado na captura de tela a seguir.
Selecione Depurar>Início ou pressione F5. Seu projeto é compilado, o executável é iniciado em sua distro WSL 2 e o Visual Studio interrompe 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 do console do Visual Studio Linux exibe 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 você criou e depurou um aplicativo C++ com WSL 2 e Visual Studio 2022.
Considerações sobre projetos avançados WSL 2 e CMake
Visual Studio só fornece suporte nativo para WSL 2 para projetos CMake que usam CMakePresets.json como o arquivo de configuração ativa. Para migrar de CMakeSettings.json para o CMakePresets.json, consulte Ativar a integração de Predefinições do CMake no Visual Studio.
Se você estiver direcionando uma distribuição WSL 2 e não quiser usar o conjunto de ferramentas WSL 2, no mapa do fornecedor Configurações remotas do Visual Studio em CMakePresets.json, defina forceWSL1Toolset como true . Para obter mais informações, consulte Mapa do fornecedor de Configurações remotas do Visual Studio.
Se forceWSL1Tooslet estiver definido como true, o Visual Studio não manterá uma cópia dos arquivos de origem no sistema de arquivos WSL. Em vez disso, ele acessa arquivos de origem na unidade montada do Windows (/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 arquivos de projeto são armazenados no sistema de arquivos 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 configuraçõ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 do fornecedor de Configurações remotas do Visual Studio em CMakePresets.json. Para obter mais informações, consulte Mapa do fornecedor de Configurações remotas do Visual Studio.
Os cabeçalhos do sistema ainda são copiados automaticamente para o sistema de arquivos do Windows para fornecer a experiência nativa do IntelliSense. Você pode personalizar os cabeçalhos incluídos ou excluídos dessa cópia no mapa do fornecedor de Configurações remotas do Visual Studio em CMakePresets.json.
Você pode alterar o modo IntelliSense ou especificar outras opções do IntelliSense no mapa do fornecedor Configurações do Visual Studio em CMakePresets.json. Para obter detalhes sobre o mapa do fornecedor, consulte Mapa do fornecedor de Configurações remotas do Visual Studio.
Projetos Linux baseados em WSL 2 e MSBuild
O CMake é recomendado para todo o desenvolvimento de plataforma cruzada C++ com o Visual Studio porque permite criar e depurar o mesmo projeto em sistemas Windows, WSL e remotos.
Mas você pode ter um projeto Linux baseado em MSBuild.
Se você tiver um projeto Linux baseado em MSBuild, poderá 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 estiveres a apontar para uma distribuição WSL 2 e não pretenderes usar o conjunto de ferramentas do WSL 2, deves então selecionar no dropdown Platform Toolset o GCC para o Subsistema Windows para Linux ou Clang para o Subsistema Windows para Linux. Se um desses conjuntos de ferramentas for selecionado, o Visual Studio não manterá uma cópia dos arquivos de origem no sistema de arquivos WSL e, em vez disso, acessará os arquivos de origem pela unidade montada do Windows (/mnt/...). Os cabeçalhos do sistema ainda são copiados automaticamente para o sistema de arquivos do Windows para fornecer uma experiência nativa do 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 arquivos de projeto são armazenados no sistema de arquivos 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
Baixar Visual Studio 2022
Criar um projeto CMake Linux no Visual Studio
Tutorial: Depurar um projeto CMake em uma máquina Windows remota