/sourceDependencies (Tüm kaynak düzeyi bağımlılıklarını listele)

Bu komut satırı anahtarı, derleme sırasında kullanılan kaynak düzeyi bağımlılıklarının ayrıntılarını içeren bir JSON dosyası oluşturur. JSON dosyası, aşağıdakilerden oluşan kaynak bağımlılıkların listesini içerir:

  • Üst bilgi dosyaları. Hem doğrudan hem de bu üst bilgiler tarafından eklenen üst bilgilerin listesi.
  • Kullanılan PCH (belirtilmişse /Yu ).
  • İçeri aktarılan modüllerin adları
  • Hem doğrudan içeri aktarılan üst bilgi birimlerinin hem de sırayla içeri aktardıkları modüllerin ve üst bilgi birimlerinin dosya yolları ve adları.

Bu seçenek, modülleri ve üst bilgi birimlerini doğru bağımlılık sırasına göre oluşturmak için gerekli bilgileri sağlar.

Sözdizimi

/sourceDependencies-
/sourceDependenciesDosyaadı
/sourceDependenciesDizin

Bağımsız değişkenler

-
Tek tire sağlanırsa, derleyici kaynak bağımlılıklarını JSON'a stdoutveya derleyici çıktısının yeniden yönlendirildiği konuma yayar.

filename
Derleyici, kaynak bağımlılık çıkışını, göreli veya mutlak bir yol içerebilen belirtilen dosya adına yazar. Dosya yoksa oluşturulur.

directory
Bağımsız değişken bir dizinse, derleyici belirtilen dizinde kaynak bağımlılık dosyaları oluşturur. Dizinin mevcut olması gerekir veya bağımsız değişkeni olarak filenamedeğerlendirilir. Çıkış dosyası adı, eklenen .json uzantıyla birlikte giriş dosyasının tam adını temel alır. Örneğin, derleyiciye sağlanan dosya ise main.cpp, oluşturulan çıkış dosya adı olur main.cpp.json.

Açıklamalar

/sourceDependencies Derleyici seçeneği Visual Studio 2019 sürüm 16.7'den itibaren kullanılabilir. Varsayılan olarak etkin değildir.

(Birden çok işlemle derleme) derleyici seçeneğini belirttiğinizde /MP , bir dizin bağımsız değişkeniyle kullanmanızı /sourceDependencies öneririz. Tek bir dosya adı bağımsız değişkeni sağlarsanız, derleyicinin iki örneği çıkış dosyasını aynı anda açmaya çalışabilir ve hataya neden olabilir. /MP'a çıkış göndermek için stdout ile /sourceDependencies- kullanılması, araya kaydedilen sonuçlara neden olabilir.

Önemli olmayan bir derleyici hatası oluştuğunda, bağımlılık bilgileri yine de çıkış dosyasına yazılır.

Tüm dosya yolları çıkışta mutlak yollar olarak görünür.

Örnekler

Aşağıdaki örnek kod verilmiştir:

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

Derleyici seçeneklerinizin geri kalanıyla birlikte kullanabilirsiniz /sourceDependencies :

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

burada ... diğer derleyici seçeneklerinizi temsil eder. Bu komut satırı aşağıdaki gibi içeriğe sahip bir JSON dosyası output.json oluşturur:

{
    "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"
            }
        ]
    }
}

Bildirilen yolları kısaltmak için kullandık ... . Rapor mutlak yolları içerir. Bildirilen yollar, derleyicinin bağımlılıkları nerede bulduğuna bağlıdır. Sonuçlar beklenmedikse, projenizin ekleme yolu ayarlarını denetlemek isteyebilirsiniz.

ProvidedModule , dışarı aktarılan modül veya modül bölüm adlarını listeler.

Bu derleyici seçeneğini Visual Studio geliştirme ortamında ayarlamak için

Normalde bu seçeneği Visual Studio geliştirme ortamında kendiniz ayarlamamalısınız. Derleme sistemi tarafından ayarlanır.

Ayrıca bkz.

MSVC derleyici seçenekleri
MSVC derleyicisi komut satırı söz dizimi
/scanDependencies
/sourceDependencies:directives