메이크 파일에 여러 줄 주석을 추가하는 방법


답변:


152

아니요, /* */makefile에 C 스타일 주석 과 같은 것은 없습니다 . 다른 사람이 제안했듯이 줄 연속을 사용하여 여러 줄 주석을 만들 수 있습니다. 예를 들면 :

# This is the first line of a comment \
and this is still part of the comment \
as is this, since I keep ending each line \
with a backslash character

그러나 디버깅을 위해 메이크 파일 청크를 일시적으로 주석 처리하려고 할 것입니다. 모든 줄에 백 슬래시를 추가하는 것은 실제로 실용적이지 않습니다. GNU make를 사용하는 ifeq경우 의도적으로 잘못된 표현으로 지시문 을 사용하는 것이 좋습니다 . 예를 들면 :

ifeq ("x","y")
# here's all your 'commented' makefile content...
endif

도움이 되었기를 바랍니다.


3
규칙에서 줄을 "주석 처리"하려면 ifeq, endif 줄을 들여 쓰지 마십시오.
Simon Márton 2015 년

13

대답은 '아니오'라고 생각합니다. 내가 찾을 수있는 유일한 주석 스타일은 각 줄에 대한 #이거나 첫 줄을 감싸기 위해 \를 사용합니다.


10

ifeqmake (1)에서 여러 줄 주석 을 사용 하는 방법 에 대한 참고 사항 입니다. 다음을 작성하면 잘 작동하지 않습니다.

ifeq (0,1)
    do not risk ifeq comments
    else trouble will find you
    ifeq is even worse
endif

ifeq와 endif 사이의 텍스트는 여전히 make에 의해 구문 분석되므로 해당 섹션에서 원하는 내용을 작성할 수 없습니다. 그리고 긴 주석을 작성하고 주석에 원하는대로 작성하려면 ($ 기호, 콜론 등 모두 make에 의미가있는 기타 포함) 모든 단일 행에 주석을 달아야합니다. 그래서 왜 ifeq... :)


정답이 아닙니다. gmake가 ifeq 내부의 텍스트를 "파싱"하는 유일한 방법은 endif를 찾는 것입니다. ifeq 내부에 가짜 구문이있는 메이크 파일로 쉽게 확인할 수 있습니다. ifeq의 조건이 거짓으로 평가되는 한 gmake는 ifeq 내부의 구문 오류를 기꺼이 무시합니다.
Eric Melski

3
정답이 아닙니다. 다음 예제를 시도해보십시오. ifeq (0, 1) 위험하지 않음 ifeq 주석 else trouble will find you endif 줄의 시작 부분 에있는 else 는 make into 오류를 던집니다. 그래서 else , ifeq , ifneq 및 내가 알지 못하는 다른 많은 기호가 문제를 일으킬 것입니다.
Mark Veltzer

그것은 공정한 요점이지만 대부분의 구문 오류는 무시됩니다.
Eric Melski


3

정확히 당신이 찾고있는 것이 아니라 정신적으로 비슷합니다. 나는 그것이 받아 들여지는 대답이 될 것이라고 기대하지 않지만 누군가에게 도움이 될 수 있습니다.

VIM에서 makefile을 편집한다고 가정합니다.
주석을 달고 싶은 줄을 결정하거나 'v'로 선택합니다.

그럼 당신은 정규식을 사용하여 s/^/#/라인을 주석
하고 s/^#//이를 되돌릴.

--노트--

  • vim 명령 줄을 열려면 :(콜론)을 누릅니다.
  • 다음 'n'줄에 대한 명령을 준비하려면 다음을 사용하십시오. .,+n
  • "v"를 사용하는 샘플 라인은 다음과 같습니다. '<,'>s/^/#/

2
대신 블록 모드를 사용하기가 더 쉽습니다. 주석을 달려면 첫 번째 줄의 시작 부분으로 이동합니다. ctrl-v, 끝까지 아래쪽 화살표, 대문자 I, #, 이스케이프. 댓글 삭제 : ctrl-v, 아래쪽 화살표 끝까지 x
brunch875

1

emacs에서는 주석 처리하고 치고 싶은 영역을 표시 할 수 있습니다 M-;(실행 comment-dwim).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.