/sourceDependencies
(Wyświetl listę wszystkich zależności na poziomie źródła)
Ten przełącznik wiersza polecenia generuje plik JSON, który zawiera szczegółowe informacje o zależnościach na poziomie źródłowym użytych podczas kompilacji. Plik JSON zawiera listę zależności źródłowych, które obejmują:
- Pliki nagłówka. Zarówno bezpośrednio dołączone, jak i lista nagłówków uwzględnionych w tych nagłówkach.
- Użyta funkcja PCH (jeśli
/Yu
jest określona). - Nazwy zaimportowanych modułów
- Ścieżki i nazwy plików zarówno bezpośrednio zaimportowanych jednostek nagłówka, jak i modułów i jednostek nagłówka importowane z kolei.
Ta opcja zawiera informacje niezbędne do kompilowania modułów i jednostek nagłówka w odpowiedniej kolejności zależności.
Składnia
/sourceDependencies-
/sourceDependencies
Pod nazwą
/sourceDependencies
katalog
Argumenty
-
Jeśli zostanie podana pojedyncza kreska, kompilator wyemituje kod JSON zależności źródłowych do stdout
, lub do miejsca przekierowania danych wyjściowych kompilatora.
filename
Kompilator zapisuje dane wyjściowe zależności źródłowej do określonej nazwy pliku, która może zawierać ścieżkę względną lub bezwzględną. Plik zostanie utworzony, jeśli nie istnieje.
directory
Jeśli argument jest katalogiem, kompilator generuje pliki zależności źródłowych w określonym katalogu. Katalog musi istnieć lub argument jest traktowany filename
jako . Nazwa pliku wyjściowego jest oparta na pełnej nazwie pliku wejściowego z dołączonym .json
rozszerzeniem. Jeśli na przykład plik podany w kompilatorze to main.cpp
, wygenerowana nazwa pliku wyjściowego to main.cpp.json
.
Uwagi
Opcja kompilatora /sourceDependencies
jest dostępna od wersji 16.7 programu Visual Studio 2019. Nie jest ona domyślnie włączona.
Po określeniu opcji kompilatora (kompilacja /MP
z wieloma procesami) zalecamy użycie /sourceDependencies
argumentu katalogu. Jeśli podasz jeden argument nazwy pliku, dwa wystąpienia kompilatora mogą próbować otworzyć plik wyjściowy jednocześnie i spowodować błąd. Użyj polecenia z /sourceDependencies-
, /MP
aby wysłać dane wyjściowe, aby spowodować stdout
przeplatane wyniki.
Gdy wystąpi błąd kompilatora niekrytycznego, informacje o zależności nadal są zapisywane w pliku wyjściowym.
Wszystkie ścieżki plików są wyświetlane jako ścieżki bezwzględne w danych wyjściowych.
Przykłady
Biorąc pod uwagę następujący przykładowy kod:
// ModuleE.ixx:
export module ModuleE;
import ModuleC;
import ModuleD;
import <iostream>;
Możesz użyć /sourceDependencies
z pozostałymi opcjami kompilatora:
cl ... /sourceDependencies output.json ... main.cpp
gdzie ...
reprezentuje inne opcje kompilatora. Ten wiersz polecenia tworzy plik output.json
JSON z zawartością, taką jak:
{
"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"
}
]
}
}
Użyliśmy ...
skrótu zgłoszonych ścieżek. Raport zawiera ścieżki bezwzględne. Zgłoszone ścieżki zależą od tego, gdzie kompilator znajduje zależności. Jeśli wyniki są nieoczekiwane, warto sprawdzić ustawienia ścieżki dołączania projektu.
ProvidedModule
Wyświetla listę wyeksportowanych nazw partycji modułu lub modułu.
Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio
Zwykle nie należy ustawiać tej opcji samodzielnie w środowisku programistycznym programu Visual Studio. Jest on ustawiany przez system kompilacji.
Zobacz też
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC
/scanDependencies
/sourceDependencies:directives