/sourceDependencies (Elencare tutte le dipendenze a livello di origine)

Questa opzione della riga di comando genera un file JSON che descrive in dettaglio le dipendenze a livello di origine utilizzate durante la compilazione. Il file JSON contiene un elenco delle dipendenze di origine, tra cui:

  • File di intestazione. Sia direttamente incluso che l'elenco di intestazioni incluse da tali intestazioni.
  • PCH utilizzato (se /Yu specificato).
  • Nomi dei moduli importati
  • Percorsi e nomi di file di unità di intestazione importate direttamente e dei moduli e unità di intestazione che importano a loro volta.

Questa opzione fornisce informazioni necessarie per compilare moduli e unità di intestazione nell'ordine di dipendenza appropriato.

Sintassi

/sourceDependencies-
/sourceDependenciesfilename
/sourceDependenciesdirectory

Argomenti

-
Se viene fornito il trattino singolo, il compilatore genererà le dipendenze di origine JSON a stdouto alla posizione in cui viene reindirizzato l'output del compilatore.

filename
Il compilatore scrive l'output della dipendenza di origine nel nome file specificato, che può includere un percorso relativo o assoluto. Se il file non esiste, verrà creato.

directory
Se l'argomento è una directory, il compilatore genera file di dipendenza di origine nella directory specificata. La directory deve esistere oppure l'argomento viene considerato come .filename Il nome del file di output si basa sul nome completo del file di input, con un'estensione aggiunta .json . Ad esempio, se il file fornito al compilatore è main.cpp, il nome file di output generato è main.cpp.json.

Osservazioni:

L'opzione /sourceDependencies del compilatore è disponibile a partire da Visual Studio 2019 versione 16.7. Non è abilitato per impostazione predefinita.

Quando si specifica l'opzione del /MP compilatore (Compilazione con più processi), è consigliabile usare /sourceDependencies con un argomento di directory. Se si specifica un singolo argomento nome file, due istanze del compilatore potrebbero tentare di aprire il file di output contemporaneamente e causare un errore. L'uso di /MP con per /sourceDependencies- inviare l'output a stdout potrebbe causare risultati interleaved.

Quando si verifica un errore del compilatore non irreversibile, le informazioni sulle dipendenze vengono comunque scritte nel file di output.

Tutti i percorsi di file vengono visualizzati come percorsi assoluti nell'output.

Esempi

Dato il codice di esempio seguente:

// ModuleE.ixx:
export module ModuleE;
import ModuleC;
import ModuleD;
import <iostream>;

È possibile usare /sourceDependencies con le altre opzioni del compilatore:

cl ... /sourceDependencies output.json ... main.cpp

dove ... rappresenta le altre opzioni del compilatore. Questa riga di comando genera un file output.json JSON con contenuto simile al seguente:

{
    "Version": "1.2",
    "Data": {
        "Source": "F:\\Sample\\myproject\\modulee.ixx",
        "ProvidedModule": "ModuleE",
        "Includes": [],
        "ImportedModules": [
            {
                "Name": "ModuleC",
                "BMI": "F:\\Sample\\Outputs\\Intermediate\\MyProject\\x64\\Debug\\ModuleC.ixx.ifc"
            },
            {
                "Name": "ModuleB",
                "BMI": "F:\\Sample\\Outputs\\Intermediate\\ModuleB\\x64\\Debug\\ModuleB.ixx.ifc"
            },
            {
                "Name": "ModuleD",
                "BMI": "F:\\Sample\\Outputs\\Intermediate\\MyProject\\x64\\Debug\\ModuleD.cppm.ifc"
            }
        ],
        "ImportedHeaderUnits": [
            {
                "Header": "f:\\visual studio 16 main\\vc\\tools\\msvc\\14.29.30030\\include\\iostream",
                "BMI": "F:\\Sample\\Outputs\\Intermediate\\HeaderUnits\\x64\\Debug\\iostream_W4L4JYGFJ3GL8OG9.ifc"
            }
        ]
    }
}

È stato usato ... per abbreviare i percorsi segnalati. Il report contiene i percorsi assoluti. I percorsi segnalati dipendono dalla posizione in cui il compilatore trova le dipendenze. Se i risultati sono imprevisti, è possibile controllare le impostazioni del percorso di inclusione del progetto.

ProvidedModule elenca i nomi delle partizioni del modulo o del modulo esportati.

Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio

In genere non è consigliabile impostare questa opzione nell'ambiente di sviluppo di Visual Studio. Viene impostato dal sistema di compilazione.

Vedi anche

Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC
/scanDependencies
/sourceDependencies:directives