Aracılığıyla paylaş


/sourceDependencies:directives (Modül ve üst bilgi birimi bağımlılıklarını listeleme)

Bu komut satırı seçeneği, modül dışarı aktarma ve içeri aktarma işlemlerini listeleyen bir JSON dosyası oluşturmak için kaynak dosyaları ve deyimlerini #include tarar. Bu bilgiler bir derleme sistemi tarafından modüllerin ve üst bilgi birimlerinin derleme sırasını belirlemek için kullanılabilir.

Bu seçenek aşağıdakilerden farklıdır /sourceDependencies :

  • Derleyici derlenmiş çıkış üretmez. Derlenmiş kod, modül veya üst bilgi birimi üretilmemiştir. Bunun yerine, dosyalar modül yönergeleri için taranır.
  • JSON biçimi, üretilenden /sourceDependencies farklıdır. Seçeneğin /sourceDependencies CMake gibi diğer derleme araçlarıyla kullanılması amaçlanmıştır.
  • Çıktı JSON dosyasında içeri aktarılan modüller ve içeri aktarılan üst bilgi birimleri (.ifc dosyalar) listelenmez çünkü bu seçenek derleme değil proje dosyalarını tarar. Bu nedenle, listelenmesini istediğiniz yerleşik modül veya üst bilgi birimi yoktur.
  • Yalnızca doğrudan içeri aktarılan modüller veya üst bilgi birimleri listelenir. İçeri aktarılan modüllerin veya üst bilgi birimlerinin bağımlılıklarını listelemez.
  • Üst bilgi dosyası bağımlılıkları listelenmez. Diğer bir ifadeyle veya #include <file> #include "file" bağımlılıklar listelenmez.
  • /sourceDependencies:directives dosyalar oluşturulmadan önce .ifc kullanılması amaçlanır.
  • /sourceDependenciesderleyicinin belirli bir çeviri birimi için kullanılan , dosyaları, .ifc dosyaları vb. gibi #includestüm dosyaları raporlamasına neden olurken/sourceDependencies:directives [file1], belirtilen kaynak dosyayı tarar ve tüm import ve export deyimlerini .pch raporlar. /sourceDependencies ile /sourceDependencies:directiveskullanılabilir.

Sözdizimi

/sourceDependencies:directives-
/sourceDependencies:directivesDosyaadı
/sourceDependencies:directivesdizin

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:directives , Visual Studio 2019 sürüm 16.10'dan itibaren kullanılabilir.

(Birden çok işlemle derleme) derleyici seçeneğini belirttiğinizde /MP , bir dizin bağımsız değişkeniyle kullanmanızı /sourceDependencies:directives öneririz. Bu seçenek, derleyici çıkışını her kaynak dosya için ayrı *.module.json bir dosya yapar. 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:directives- 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.

Bu anahtar ile /translateIncludekullanılabilir.

Örnekler

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

//main.cpp:
#include <vector>

import m;
import std.core;

import <utility>;

import "t.h";

int main() {}

Aşağıdaki komut satırı:

cl /std:c++latest /translateInclude /sourceDependencies:directives output.json main.cpp

şuna benzer bir JSON dosyası output.json oluşturur:

{
   "Version":"1.1",
   "Data":{
      "Source":"C:\\a\\b\\main.cpp",
      "ProvidedModule":"",
      "ImportedModules":[
         "m",
         "std.core"
      ],
      "ImportedHeaderUnits":[
         "C:\\...\\utility",
         "C:\\a\\b\\t.h"
      ]
   }
}

Kısa olması için, önceki örnekte bildirilen yolları kısaltmak için kullanılır ... . 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.

Oluşturulmadıkları .ifc için çıkışta hiçbir dosya listelenmez. aksine /sourceDependencies, derleyici belirtildiğinde /sourceDependencies:directives derlenmiş çıkış üretmez, bu nedenle derlenmiş modüller veya üst bilgi birimleri üretilmez.

Visual Studio'da bu derleyici seçeneğini 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.

/translateInclude
C++ header-units.json başvurusu
MSVC derleyici seçenekleri
MSVC derleyicisi komut satırı söz dizimi
/scanDependencies (Modül bağımlılıklarını standart biçimde listeleme)
/sourceDependencies (Tüm kaynak düzeyi bağımlılıklarını listele)