문제

문자열을 정의하기 위해 MSVC6에서 A /D 컴파일러 옵션을 사용하려고하지만 주변의 이중 인용문을 사용하는 것이 이상한 것이 있습니다. 이 문제를 디버깅하기 위해서는 미리 처리기가 매크로가 확장되는 내 코드로 실제로 대체하는 값을 볼 수있게하는 것이 매우 도움이 될 것입니다. 내가 할 수있는 방법이 있습니까? "어셈블리 및 소스"가있는 목록 파일을 만들려고했지만 소스에는 원래 매크로 이름이 포함되어 있으며 ASM은 해당 라인에서 이해할 수없는 횡설수설입니다. 컴파일 시간에 거시적 값을 얻는 방법이 있습니까?

실패 (또는 더 유용한), /d 옵션이있는 문자열을 어떻게 지정합니까? 문자열 문자로 사용하기 때문에 주변의 이중 인용문으로 내 소스로 대체해야합니다.

도움이 되었습니까?

해결책

cl.exe에 다음 옵션 중 하나를 시도하십시오.

/E preprocess to stdout
/P preprocess to file

Visual Studio 내에서 구축하는 경우 프로젝트 속성 대화 상자 중 하나에서 사용자 정의 명령 줄 옵션을 지정할 수 있습니다.

다른 팁

MSVC에는 모든 매크로 확장, 주석이 제거 된 댓글 등으로 전처리 된 소스 파일을 볼 수있는 컴파일러 플래그가 있습니다. - 컴파일 할 실제 코드 측면에서 전체 번역 장치. 전처리 된 출력은 거시적 확장과 관련하여 찾고있는 통찰력을 제공해야합니다. 더 많은 정보 여기.

컴파일러로 전달할 수있는 옵션이 있습니다 (/P) 그리고 전처리 출력을 작성합니다 my_cpp_file.i 당신이 그것을 볼 수있는 곳.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top