Partilhar via


Configurar um projeto Linux MSBuild C++ no Visual Studio

O suporte ao Linux está disponível no Visual Studio 2017 e posterior.

Este tópico descreve como configurar um projeto Linux baseado em MSBuild conforme descrito em Criar um projeto Linux MSBuild C++ no Visual Studio. Para projetos Linux CMake, consulte Configurar um projeto Linux CMake.

Você pode configurar um projeto Linux para direcionar uma máquina Linux física, uma máquina virtual ou o Subsistema Windows para Linux (WSL).

Visual Studio 2019 versão 16.1 e posterior:

  • Ao direcionar o WSL, você pode evitar as operações de cópia necessárias para criar e obter o IntelliSense que são necessárias quando você direciona um sistema Linux remoto.

  • Você pode especificar alvos Linux separados para compilação e depuração.

Configurações gerais

Para exibir as opções de configuração, selecione o menu Propriedades do projeto > ou clique com o botão direito do mouse no projeto no Gerenciador de Soluções e selecione Propriedades no menu de contexto. As configurações gerais são exibidas.

Captura de tela da caixa de diálogo Páginas de propriedades Configuração geral.

Por padrão, um executável (.out) é construído. Para criar uma biblioteca estática ou dinâmica, ou para usar um Makefile existente, use a configuração Tipo de configuração .

Se você estiver criando para o Windows Subsystem for Linux (WSL), o WSL Versão 1 está limitado a 64 processos de compilação paralelos. Isso é regido pela configuração Max Parallel Compilation Jobs nas propriedades > de configuração C/C++ > General.

Independentemente da versão WSL que você está usando, se você pretende usar mais de 64 processos de compilação paralela, recomendamos que você construa com Ninja - que geralmente será mais rápido e confiável. Para criar com o Ninja, use a configuração Habilitar compilação incremental em Propriedades > de configuração Geral.

Para obter mais informações sobre as configurações nas páginas de propriedades, consulte Referência da página de propriedades do projeto Linux.

Configurações remotas

Para alterar as configurações relacionadas ao computador Linux remoto, configure as configurações remotas que aparecem em Geral.

  • Para especificar um computador Linux de destino remoto, use a entrada Remote Build Machine . Isso permitirá que você selecione uma das conexões criadas anteriormente. Para criar uma nova entrada, consulte a seção Conectando-se ao seu computador Linux remoto .

    Captura de tela mostrando a máquina de compilação remota.

    Visual Studio 2019 versão 16.7 e posterior: para direcionar o Subsistema Windows para Linux, selecione na lista suspensa Conjunto de Ferramentas de Plataforma a opção GCC para Subsistema Windows para Linux. As outras opções remotas desaparecerão e o caminho para o shell WSL padrão aparecerá em seu lugar:

    Captura de tela mostrando a máquina de compilação WSL.

    Se você tiver instalações WSL lado a lado, poderá especificar um caminho diferente aqui. Para obter mais informações sobre como gerenciar várias distros, consulte Gerenciar e configurar o Subsistema Windows para Linux.

    Você pode especificar um destino diferente para depuração na página de Depuração das Propriedades de Configuração.

  • O Remote Build Root Directory determina o local raiz de onde o projeto é construído no computador Linux remoto. O padrão será ~/projects , a menos que seja alterado.

  • O Remote Build Project Directory é onde este projeto específico será construído no computador Linux remoto. O padrão será $(RemoteRootDir)/$(ProjectName), que se expandirá para um diretório com o nome do projeto atual, sob o diretório raiz definido acima.

Observação

Para alterar os compiladores C e C++ padrão, ou o Linker e Archiver usados para criar o projeto, use as entradas apropriadas na seção C/C++ > General e na seção Linker > General . Você pode especificar uma determinada versão do GCC ou Clang, por exemplo. Para obter mais informações, consulte Propriedades C/C++ (Linux C++) e Propriedades do vinculador (Linux C++).

Copiar fontes (somente sistemas remotos)

Observação

Esta seção não se aplica ao destinar ao WSL.

Ao construir em sistemas remotos, os arquivos de origem em seu PC de desenvolvimento são copiados para o computador Linux e compilados lá. Por padrão, todas as fontes no projeto do Visual Studio são copiadas para os locais definidos nas configurações acima. No entanto, fontes adicionais também podem ser adicionadas à lista, ou a cópia de fontes pode ser totalmente desativada, que é a configuração padrão para um projeto Makefile.

  • As fontes a serem copiadas determinam quais fontes são copiadas para o computador remoto. Por padrão, o @(SourcesToCopyRemotely) assume como padrão todos os arquivos de código-fonte no projeto, mas não inclui nenhum arquivo de ativo/recurso, como imagens.

  • As fontes de cópia podem ser ativadas e desativadas para habilitar e desabilitar a cópia de arquivos de origem para o computador remoto.

  • Fontes adicionais para copiar permitem que você adicione arquivos de origem adicionais, que serão copiados para o sistema remoto. Você pode especificar uma lista delimitada por ponto-e-vírgula ou usar a sintaxe := para especificar um nome local e remoto a ser usado:

C:\Projects\ConsoleApplication1\MyFile.cpp:=~/projects/ConsoleApplication1/ADifferentName.cpp;C:\Projects\ConsoleApplication1\MyFile2.cpp:=~/projects/ConsoleApplication1/ADifferentName2.cpp;

Criar eventos

Como toda a compilação está acontecendo em um computador remoto (ou WSL), vários eventos de compilação adicionais foram adicionados à seção Eventos de compilação em Propriedades do projeto. Estes são Remote Pre-Build Event, Remote Pre-Link Event e Remote Post-Build Event, e ocorrerão no computador remoto antes ou depois das etapas individuais do processo.

Captura de ecrã da caixa de diálogo Páginas de Propriedades mostrando Eventos de Compilação.

IntelliSense para cabeçalhos em sistemas remotos

Quando você adiciona uma nova conexão no Gerenciador de Conexões, o Visual Studio deteta automaticamente os diretórios de inclusão para o compilador no sistema remoto. Em seguida, o Visual Studio compacta e copia esses arquivos para um diretório em sua máquina Windows local. Depois disso, sempre que você usar essa conexão em um projeto do Visual Studio ou CMake, os cabeçalhos nesses diretórios serão usados para fornecer o IntelliSense.

Observação

Na versão 16.5 e posteriores do Visual Studio 2019, a cópia de cabeçalho remoto foi otimizada. Os cabeçalhos agora são copiados sob demanda ao abrir um projeto Linux ou configurar o CMake para um destino Linux. A cópia é realizada em segundo plano com base em cada projeto, de acordo com os compiladores especificados para o projeto. Para obter mais informações, consulte Melhorias na precisão e no desempenho do Linux IntelliSense.

Esta funcionalidade depende da máquina Linux ter zip instalado. Você pode instalar o zip usando este comando apt-get:

sudo apt install zip

Para gerir o cache de cabeçalhos, navegue até Ferramentas > Opções, > Gerenciador de Conexões Entre Plataformas > Gerenciador de Cabeçalhos Remotos IntelliSense. Para atualizar o cache de cabeçalho depois de fazer alterações em sua máquina Linux, selecione a conexão remota e, em seguida, selecione Atualizar. Selecione Excluir para remover os cabeçalhos sem excluir a própria conexão. Selecione Explorar para abrir o diretório local no Explorador de Arquivos. Trate esta pasta como somente leitura. Para baixar cabeçalhos para uma conexão existente que foi criada antes do Visual Studio 2017 versão 15.3, selecione a conexão e, em seguida, selecione Download.

Captura de ecrã mostrando a caixa de diálogo Opções com o Gerenciador de Conexões entre Plataformas > e o Gestor de IntelliSense de Cabeçalhos Remotos > selecionados.

Captura de ecrã a mostrar a caixa de diálogo Opções com o Gestor de Ligações Multiplataforma > selecionado.

Você pode habilitar o registro em log para ajudar a solucionar problemas:

Captura de ecrã da caixa de diálogo Opções que mostra as opções de Registo Remoto.

Localidade de destino do Linux

As configurações de idioma do Visual Studio não são propagadas para destinos Linux porque o Visual Studio não gerencia nem configura pacotes instalados. As mensagens mostradas na janela Saída, como erros de compilação , são mostradas usando o idioma e a localidade do destino Linux. Você precisará configurar seus destinos Linux para a localidade desejada.

Ver também

Definir propriedades do compilador e da compilação
Propriedades gerais do C++ (Linux C++)
Diretórios VC++ (Linux C++)
Propriedades do Projeto de Cópia de Fontes (Linux C++)
Propriedades do evento Build (Linux C++)