/sourceDependencies (모든 원본 수준 종속성 나열)

이 명령줄 스위치는 컴파일 중에 사용되는 원본 수준 종속성을 자세히 나타내는 JSON 파일을 생성합니다. JSON 파일에는 다음을 포함하는 원본 종속성 목록이 포함되어 있습니다.

  • 헤더 파일. 직접 포함되고 해당 헤더에 포함된 헤더 목록입니다.
  • 사용되는 PCH입니다(지정된 경우 /Yu ).
  • 가져온 모듈의 이름
  • 직접 가져온 헤더 단위와 가져온 모듈 및 헤더 단위의 파일 경로 및 이름입니다.

이 옵션은 모듈 및 헤더 단위를 적절한 종속성 순서로 빌드하는 데 필요한 정보를 제공합니다.

구문

/sourceDependencies-
/sourceDependencies filename
/sourceDependencies directory

인수

-
단일 대시가 제공되면 컴파일러는 원본 종속성 JSON을 stdout내보내거나 컴파일러 출력이 리디렉션되는 위치로 내보냅니다.

filename
컴파일러는 원본 종속성 출력을 지정된 파일 이름에 씁니다. 여기에는 상대 경로 또는 절대 경로가 포함될 수 있습니다. 파일이 없는 경우 새로 만들어집니다.

directory
인수가 디렉터리인 경우 컴파일러는 지정된 디렉터리에 원본 종속성 파일을 생성합니다. 디렉터리가 있어야 하거나 인수가 .로 filename처리됩니다. 출력 파일 이름은 추가된 .json 확장명을 사용하여 입력 파일의 전체 이름을 기반으로 합니다. 예를 들어 컴파일러 main.cpp에 제공된 파일이 있으면 생성된 출력 파일 이름은 .입니다 main.cpp.json.

설명

/sourceDependencies 컴파일러 옵션은 Visual Studio 2019 버전 16.7부터 사용할 수 있습니다. 기본적으로 사용하지 않도록 설정됩니다.

(여러 프로세스를 사용하여 /MP 빌드) 컴파일러 옵션을 지정하는 경우 디렉터리 인수와 함께 사용하는 /sourceDependencies 것이 좋습니다. 단일 파일 이름 인수를 제공하는 경우 컴파일러의 두 인스턴스가 출력 파일을 동시에 열어 오류를 일으킬 수 있습니다. /MP /sourceDependencies- 출력을 보내기 위해 stdout 함께 사용하면 인터리브 결과가 발생할 수 있습니다.

치명적이 아닌 컴파일러 오류가 발생하면 종속성 정보가 출력 파일에 계속 기록됩니다.

모든 파일 경로는 출력에서 절대 경로로 표시됩니다.

예제

다음 샘플 코드가 제공됩니다.

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

나머지 컴파일러 옵션과 함께 사용할 /sourceDependencies 수 있습니다.

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

여기서 ... 는 다른 컴파일러 옵션을 나타냅니다. 이 명령줄은 다음과 같은 콘텐츠가 포함된 JSON 파일을 output.json 생성합니다.

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

보고된 경로를 축약하는 데 사용 ... 했습니다. 보고서에는 절대 경로가 포함됩니다. 보고된 경로는 컴파일러가 종속성을 찾는 위치에 따라 달라집니다. 결과가 예기치 않은 경우 프로젝트의 포함 경로 설정을 확인할 수 있습니다.

ProvidedModule 는 내보낸 모듈 또는 모듈 파티션 이름을 나열합니다.

Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면

일반적으로 Visual Studio 개발 환경에서 이 옵션을 직접 설정해서는 안 됩니다. 빌드 시스템에 의해 설정됩니다.

참고 항목

MSVC 컴파일러 옵션
MSVC 컴파일러 명령줄 구문
/scanDependencies
/sourceDependencies:directives