/sourceDependencies
(Výpis všech závislostí na úrovni zdroje)
Tento přepínač příkazového řádku vygeneruje soubor JSON, který podrobně popisuje závislosti na úrovni zdroje spotřebované během kompilace. Soubor JSON obsahuje seznam zdrojových závislostí, mezi které patří:
- Soubory hlaviček. Přímo zahrnuté i seznam hlaviček, které tato záhlaví obsahují.
- Použitý PCH (pokud
/Yu
je zadaný). - Názvy importovaných modulů
- Cesty k souborům a názvy přímo importovaných jednotek záhlaví i modulů a jednotek hlaviček, které importují.
Tato možnost poskytuje informace potřebné k sestavení modulů a jednotek hlaviček ve správném pořadí závislostí.
Syntaxe
/sourceDependencies-
/sourceDependencies
jméno souboru
/sourceDependencies
adresář
Argumenty
-
Pokud je k dispozici jednomlčka, kompilátor vygeneruje zdrojové závislosti JSON do stdout
umístění přesměrování výstupu kompilátoru.
filename
Kompilátor zapíše výstup zdrojové závislosti do zadaného názvu souboru, který může obsahovat relativní nebo absolutní cestu. Pokud soubor neexistuje, je vytvořen.
directory
Pokud je argument adresářem, kompilátor vygeneruje zdrojové soubory závislostí v zadaném adresáři. Adresář musí existovat nebo je argument považován za filename
. Název výstupního souboru je založený na úplném názvu vstupního souboru s připojenou .json
příponou. Pokud je například soubor poskytnutý kompilátoru main.cpp
, vygenerovaný výstupní název souboru je main.cpp.json
.
Poznámky
Možnost kompilátoru /sourceDependencies
je dostupná od sady Visual Studio 2019 verze 16.7. Ve výchozím nastavení není povolená.
Při zadávání možnosti kompilátoru /MP
(Sestavení s více procesy) doporučujeme použít /sourceDependencies
s argumentem adresáře. Pokud zadáte jeden argument názvu souboru, mohou se dvě instance kompilátoru pokusit otevřít výstupní soubor současně a způsobit chybu. /MP
/sourceDependencies-
Použití příkazu k odeslání výstupu stdout
může způsobit prokládání výsledků.
Pokud dojde k chybě nevýkonného kompilátoru, informace o závislostech se stále zapíšou do výstupního souboru.
Všechny cesty k souborům se ve výstupu zobrazují jako absolutní cesty.
Příklady
Při použití následujícího vzorového kódu:
// ModuleE.ixx:
export module ModuleE;
import ModuleC;
import ModuleD;
import <iostream>;
Můžete použít /sourceDependencies
se zbývajícími možnostmi kompilátoru:
cl ... /sourceDependencies output.json ... main.cpp
kde ...
představuje další možnosti kompilátoru. Tento příkazový řádek vytvoří soubor output.json
JSON s obsahem, jako je:
{
"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"
}
]
}
}
Použili ...
jsme zkratku ohlášených cest. Sestava obsahuje absolutní cesty. Ohlášené cesty závisí na tom, kde kompilátor najde závislosti. Pokud jsou výsledky neočekávané, můžete zkontrolovat nastavení cesty zahrnutí projektu.
ProvidedModule
vypíše exportované názvy oddílů modulu nebo modulů.
Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio
Tuto možnost byste normálně neměli nastavit sami ve vývojovém prostředí sady Visual Studio. Nastavuje ho systém sestavení.
Viz také
Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC
/scanDependencies
/sourceDependencies:directives