/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./sourceDependencies
derleyicinin belirli bir çeviri birimi için kullanılan , dosyaları,.ifc
dosyaları vb. gibi#includes
tüm dosyaları raporlamasına neden olurken/sourceDependencies:directives [file1]
, belirtilen kaynak dosyayı tarar ve tümimport
veexport
deyimlerini.pch
raporlar./sourceDependencies
ile/sourceDependencies:directives
kullanılabilir.
Sözdizimi
/sourceDependencies:directives-
/sourceDependencies:directives
Dosyaadı
/sourceDependencies:directives
dizin
Bağımsız değişkenler
-
Tek tire sağlanırsa, derleyici kaynak bağımlılıklarını JSON'a stdout
veya 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 filename
değ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 /translateInclude
kullanı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)