2017-04-19 1 views
2

Visual Studio에서 프로그래밍 된 컴파일러 지시문이 가득한 프로그램을 사용하고 있습니다.컴파일을 통해 전 처리기 지시문을 따르는 방법

몇 가지 사항을 변경했는데 해결되지 않은 외부 컴파일러/링커 오류가 발생했습니다.

이것은 특정 기능의 구현을 감지하지 못하는 것으로 보이는 컴파일러 지시문에 의한 것이라고 생각합니다.이를 조사하기 위해 컴파일 과정에서 #ifdef 컴파일러 지시문을 따르고 싶습니다.

이미 /P 구성을 사용해 보았습니다. 그러나 Output 창에 컴파일러 지시문이 표시되지 않습니다.

아무에게도이를 수행하는 방법을 알고 있습니까?

+0

Visual Studio는 매크로가 비활성화 된 코드 블록을 회색으로 표시해야합니까? – DeiDei

+0

실제로 이것은 정적 컴파일러 지시문의 경우에만 유용하지만, 제 경우에는 때때로 # define으로 시작한 다음 # undefine이 완료되고 다시 돌아옵니다. m 자체를 잃어 버렸기 때문에 (아마 대부분 외부의 미해결), 전 처리기의 컴파일 결과가 나에게 어떤 일이 일어나는지 보여줄 수 있기를 바란다. – Dominique

답변

1

나는 당신이 /P 옵션으로 바른 길을 가고 있다고 생각하지만 doc은 출력이 .i 확장 파일 (아마도 출력 창과 다를 수 있음)이있는 파일로 이동한다고 말합니다.

또한지도 파일을 생성하면 모든 링커 오류에 대한 도움말을 찾을 수 있습니다. /MAP (Generate Mapfile)을 참조하십시오.

+0

고마워요, 필,하지만 작동하지 않는 것 같습니다 : 나는 * .i 파일이 없으며,'/ map' 설정을 한 후에도 다른 파일이 없습니다. – Dominique

+0

출력 창에 컴파일러 명령이 실행 중임을 보여 줍니까? 파일이 생성되지 않는 이유에 대한 단서가있을 수 있습니다. –

+0

간단한 콘솔 앱에서'/ P' 옵션을 활성화하고 빌드 해 보았습니다. '.i' 파일은 빌드 출력 디렉토리 (예를 들어'Debug ')에 있습니다. 링크가 부작용으로 실패합니다 (따라서 컴파일러/전 처리기 문제를 해결 한 후에 문제를 해결할 수 있습니다). –

관련 문제