이 pragma Source_File_Name
에 대한 문서는 구문이
pragma Source_File_Name (
[Unit_Name =>] unit_NAME,
Spec_File_Name => STRING_LITERAL,
[Index => INTEGER_LITERAL]);
pragma Source_File_Name (
[Unit_Name =>] unit_NAME,
Body_File_Name => STRING_LITERAL,
[Index => INTEGER_LITERAL]);
말한다 : GNAT는 프로젝트 파일의 기본 이름 지정 방식을 대체 할 수 있습니다 . 올바른 구문을 사용하여, 그
package Parent_With_Very_Long_Name.Child is
pragma Source_File_Name
(Parent_With_Very_Long_Name.Child, Spec_File_Name => "parent-child.ads");
end Parent_With_Very_Long_Name.Child;
될하지만 컴파일러는 지금
parent-child.ads:2:01: incorrect placement for configuration pragma "Source_File_Name"
이 구성 프라그의 적절한 배치는 장치 전에 말한다 :
pragma Source_File_Name
(Parent_With_Very_Long_Name.Child, Spec_File_Name => "parent-child.ads");
package Parent_With_Very_Long_Name.Child is
end Parent_With_Very_Long_Name.Child;
모두 아주이다 그런데 다른 유닛이 이것을 어떻게 알까요? GNAT에는 소스 기반 컴파일 모델이 있습니다. 한 가지 대답은 구성 파일에 플러그 - 마를 넣는 것입니다. 기본값은 gnat.adc
입니다. 더 좋은 대답은 Jacob Sparre Andersen이 제안한대로 GNAT 프로젝트 파일과 package Naming
을 사용하는 것입니다.
두 링크 모두'Source_File_Name_Project'를 사용하지 말라고 알려줍니다. 그것은 말했습니다 -'Source_File_Name'이 작동한다고 확신하지만, 우리가 당신을 도울 것을 원한다면 ** 실제로 작성한 내용과 작성한 파일을 보여 주어야합니다 ** 그리고, 실제 오류 메시지 알았어. –