Configurare un progetto LinuxConfigure a Linux Project

Questo argomento illustra come configurare un progetto Linux in Visual Studio.This topic describes how to configure a Visual Studio Linux project. Per informazioni sui progetti CMake per Linux, vedere Configurare un progetto CMake per Linux.For information about CMake Linux Projects, see Configure a Linux CMake Project .

Impostazioni generaliGeneral settings

Con Visual Studio è possibile configurare un'ampia gamma di opzioni per un progetto Linux.A variety of options can be configured for a Linux project with Visual Studio. Per visualizzare queste opzioni, selezionare il menu Progetto > Proprietà o fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Proprietà dal menu di scelta rapida.To view these options, select the Project > Properties menu, or right click on the project in Solution Explorer and select Properties from the context menu. Vengono visualizzate le impostazioni Generale.The General settings appear.

Impostazioni di configurazione generali

Per impostazione predefinita, lo strumento genera un file eseguibile con estensione out.By default, an executable (.out) is built with the tool. Per compilare una libreria statica o dinamica, o per usare un makefile esistente, usare Tipo configurazione.To build a static or dynamic library, or to use an existing Makefile, use the Configuration Type selection.

Impostazioni remoteRemote settings

Per modificare le impostazioni relative al computer Linux remoto, configurare le opzioni remote visualizzate nelle impostazioni Generale:To change settings pertaining to the remote Linux computer, configure the remote options that appear in the General settings:

  • Per modificare il computer Linux di destinazione, usare la voce Computer di compilazione remota.To change the target Linux computer, use the Remote Build Machine entry. In questo modo sarà possibile selezionare una delle connessioni create in precedenza.This will allow you to select one of the connections created previously. Per creare una nuova voce, vedere Connessione al computer Linux remoto.To create a new entry, please see the Connecting to Your Remote Linux Computer section.

  • La directory radice di compilazione remota determina il percorso radice in cui viene compilato il progetto nel computer Linux remoto.The Remote Build Root Directory determines the root location of where the project is built on the remote Linux computer. Se non vengono apportate modifiche, per impostazione predefinita sarà ~/projects.This will default to ~/projects unless changed.

  • La directory del progetto di compilazione remota è quella in cui verrà compilato il progetto specifico nel computer Linux remoto.The Remote Build Project Directory is where this specific project will be built on the remote Linux computer. Per impostazione predefinita, sarà $(directoryradiceremota)/$(nomeprogetto), che si espanderà in una directory denominata come il progetto corrente, nella directory radice impostata in precedenza.This will default to $(RemoteRootDir)/$(ProjectName), which will expand to a directory named after the current project, under the root directory set above.

Nota

Per modificare compilatori C e C++ predefiniti o il linker e l'archiver usati per compilare il progetto, usare le voci corrispondenti nella sezione C/C++ > Generale e nella sezione Linker > General.To change the default C and C++ compilers, or the Linker and Archiver used to build the project, use the appropriate entries in the C/C++ > General section and the Linker > General section. Ad esempio, è possibile scegliere di usare una versione specifica di GCC o persino il compiler Clang.These could be set to use a certain version of GCC, or even the Clang compiler, for example.

Directory di inclusione e supporto IntelliSenseInclude directories and IntelliSense support

Visual Studio 2017 versione 15.6 e precedenti: per impostazione predefinita, Visual Studio non comprende file di inclusione a livello di sistema da computer Linux.Visual Studio 2017 version 15.6 and earlier: By default, Visual Studio does not include any system-level include files from the Linux computer. Ad esempio, gli elementi della directory /usr/include non sono presenti in Visual Studio.For example, items in the /usr/include directory are not present in Visual Studio. Per il supporto completo di IntelliSense, sarà necessario copiare i file in un percorso nel computer di sviluppo e configurare Visual Studio in modo che scelga tale percorso.For full IntelliSense support, you will need to copy those files to some location on your development computer and point Visual Studio to this location. È possibile, ad esempio, usare SCP (Secure Copy) per copiare i file.One option is to use scp (Secure Copy) to copy the files. In Windows 10 è possibile usare Bash in Windows per eseguire SCP.On Windows 10, you can use Bash on Windows to run scp. Per le versioni precedenti di Windows, è possibile usare ad esempio PSCP (PuTTY Secure Copy).For previous versions of Windows, you could use something like PSCP (PuTTY Secure Copy).

È possibile copiare i file usando un comando simile al seguente:You can copy the files by using a command similar to the following:

scp -r linux_username@remote_host:/usr/include .

Naturalmente, sostituire i valori di linux_username e remote_host riportati sopra in modo che siano appropriati all'ambiente.Of course, replace the linux_username and remote_host values above for what's appropriate in your own environment.

Una volta copiati i file, usare Directory di VC++ nelle proprietà del progetto per indicare a Visual Studio dove trovare i file di inclusione aggiuntivi che sono stati appena copiati.Once the files are copied, use the VC++ Directories item in Project properties to tell Visual Studio where to find the additional include files that were just copied.

Directory di VC++

Visual Studio 2017 versione 15.7 e successive: vedere la sezione relativa alla gestione delle intestazioni remote per IntelliSense.Visual Studio 2017 version 15.7 and later: See Manage Remote Headers for IntelliSense.

Copia originiCopy sources

Durante la compilazione, i file origine del computer di sviluppo vengono copiati nel computer Linux dove vengono poi compilati.When building, the source files on your development PC are copied to the Linux computer and compiled there. Per impostazione predefinita, tutti i file di origine del progetto di Visual Studio vengono copiati nel percorso impostato sopra.By default, all sources in the Visual Studio project are copied to the locations set in the settings above. Tuttavia,è anche possibile aggiungere file di origine aggiuntivi all'elenco oppure disabilitare totalmente la copia di file di origine. Quest'ultima è l'impostazione predefinita per i progetti makefile.However, additional sources can also be added to the list, or copying sources can be turned off entirely, which is the default for a Makefile project.

  • Origini da copiare determina quali file di origine vengono copiati nel computer remoto.Sources to copy determines which sources are copied to the remote computer. Per impostazione predefinita, @(SourcesToCopyRemotely) corrisponde a tutti i file di codice sorgente nel progetto, ma non include i file di asset o risorsa, ad esempio le immagini.By default, the @(SourcesToCopyRemotely) defaults to all source code files in the project, but does not include any asset/resource files, such as images.

  • L'opzione Copia origini può essere attivata e disattivata per attivare e disattivare la copia dei file di origine nel computer remoto.Copy sources can be turned on and off to enable and disable the copying of source files to the remote computer.

  • Altre origini da copiare consente di aggiungere file di origine che verranno copiati nel sistema remoto.Additional sources to copy allows you to add additional source files which will be copied to the remote system. È possibile specificare un elenco delimitato da punti e virgola, oppure usare la sintassi := per specificare un nome locale e remoto da usare:You can specify a semi-colon delimited list, or you can use the := syntax to specify a local and remote name to use:

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

Eventi di compilazioneBuild events

Poiché tutta la compilazione avviene in un computer remoto, sono stati aggiunti diversi eventi alla sezione Eventi di compilazione in Proprietà del progetto.Since all compilation is happening on a remote computer, several additional Build Events have been added to the Build Events section in Project Properties. Si tratta di Evento pre-compilazione remota, Evento di pre-collegamento remoto ed Evento di post-compilazione remota che verranno eseguiti nel computer remoto prima o dopo i singoli passaggi del processo.These are Remote Pre-Build Event, Remote Pre-Link Event, and Remote Post-Build Event, and will occur on the remote computer before or after the individual steps in the process.

Eventi di compilazione

IntelliSense per le intestazioni remote (Visual Studio 2017 15.7 e versioni successive)IntelliSense for remote headers (Visual Studio 2017 version 15.7 and later)

Quando si aggiunge una nuova connessione in Gestione connessione, Visual Studio rileva automaticamente le directory di inclusione per il compilatore nel sistema remoto.When you add a new connection in Connection Manager, Visual Studio automatically detects the include directories for the compiler on the remote system. Visual Studio quindi comprime e copia i file in una directory nel computer Windows locale.Visual Studio then zips up and copies those files to a directory on your local Windows machine. Successivamente, ogni volta che si usa la connessione in un progetto Visual Studio o CMake, le intestazioni in tali directory vengono usate per gestire IntelliSense.After that, whenever you use that connection in a Visual Studio or CMake project, the headers in those directories are used to provide IntelliSense.

Questa funzionalità dipende dal computer Linux in cui è installato il file ZIP.This functionality depends on the Linux machine having zip installed. Per installare lo ZIP usare questo comando apt-get:You can install zip by using this apt-get command:

apt install zip

Per gestire la cache di intestazione, passare a Strumenti > Opzioni, Multipiattaforma > Gestione connessione > Gestione intestazioni remote per IntelliSense.To manage your header cache, navigate to Tools > Options, Cross Platform > Connection Manager > Remote Headers IntelliSense Manager. Per aggiornare la cache di intestazione dopo aver apportato le modifiche nel computer Linux, selezionare la connessione remota e quindi selezionare Aggiorna.To update the header cache after making changes on your Linux machine, select the remote connection and then select Update. Selezionare Elimina per rimuovere le intestazioni senza eliminare la connessione stessa.Select Delete to remove the headers without deleting the connection itself. Selezionare Esplora per aprire la directory locale in Esplora file.Select Explore to open the local directory in File Explorer. Considerare questa cartella come di sola lettura.Treat this folder as read-only. Per scaricare le intestazioni per una connessione esistente creata prima della versione 15.3, selezionare la connessione e quindi Scarica.To download headers for an existing connection that was created prior to version 15.3, select the connect and then select Download.

IntelliSense per le intestazioni remote

Vedere ancheSee Also

Utilizzo di Proprietà del progettoWorking with Project Properties
Proprietà generali di C++ (Linux C++)C++ General Properties (Linux C++)
Directory di VC++ (Linux C++)VC++ Directories (Linux C++)
Proprietà di un progetto Copia origini (Linux C++)Copy Sources Project Properties (Linux C++)
Proprietà di un evento di compilazione (Linux C++)Build Event Properties (Linux C++)