많은 매크로가있는 C 코드를 디버깅해야합니다. 그 중 일부는 전혀 사소한 것이 아니며 여러 행을 포함합니다. 매크로를 한 행으로 확장하고 오류가 어디서 발생하는지 모르기 때문에 디버깅이 불가능합니다. 반면에, sed
을 사용하면 프리 프로세서 출력을 가져 와서 각 세미콜론 다음에 줄을 추가하는 것이 쉽습니다.컴파일러 스테이지 추가
매크로에 관해서는 많이 할 수 없기 때문에 매크로를 사용하는 것이 좋습니다. 하지만 전처리와 컴파일 사이에 컴파일러 (icc, gcc, xlc)를 사용하여 컴파일러에 스테이지를 추가 할 수 있는지 알고 싶습니다. 따라서 sed
명령을 사용하십시오.
$ g++ -E in.c -o in.i
이 그런 다음 나오지도 스크립트를 실행하고 (아무 -E이 시간) ++ g과 출력의 컴파일 할 수있는 일
그래, 난 할 수 있지만, 메이크 많은 변경 할 규칙이 있습니다. 한 컴파일 단계와 다른 컴파일 단계 사이에서 뭔가를하도록 컴파일러에게 구체적으로 알려주는 방법이 있는지 궁금합니다. –
gcc에는 그런 것이 없다고 생각합니다. 아마도 다른 컴파일러가 가지고있을 것입니다. – piokuc
@ Genís의 표준 트릭은 'g ++'를 두 번 호출하고 '-E'를 추가하고 첫 번째 실행을 위해'-o' 파일 이름을 변경하는 래퍼 스크립트를 사용하는 것입니다. –