문제

Make Output를 어떻게 포맷 할 수 있습니까?!! Qmake 프로젝트 파일 만 변경하여 !!). 내 컴파일 라인은 계속 증가하고 있으며, 한 줄의 웨이 닝/오류는 거의 사라집니다.

나는 같은 것을 생각하고있다

$(CC) in.ext -o out.ext

감사합니다

도움이 되었습니까?

해결책

~ 안에 qmake, 무음 구성 옵션을 추가 할 수 있습니다.

CONFIG += silent

(참고 : 나는 그것이 명령이라고 생각합니다. 이것과 비슷한 것입니다.)

대부분의 출력을 억제하고 경고 및 오류와 함께 "AO 컴파일"과 같은 라인 만 인쇄해야합니다. 나는 이것이 비슷하다고 믿는다 make'에스 .SILENT. 지시문 (그게 하나라고 생각합니다 ...)

그러나 오류 파서가 사용하는 많은 정보를 억제하기 때문에 이에주의를 기울이고 싶을 수도 있습니다. 예를 들어, 당신이 a로 컴파일하는 경우 SUBDIRS 구성, 다른 디렉토리로 변경 될 때 인쇄되지 않습니다.

다른 팁

다른 접근법이 있습니다. 그리고 당신은 그것들을 구성 가능하게 만들 수 있습니다.

  • 만약 너라면 추가하다 @ 징후 규칙 내의 줄 앞에서 명령 자체는 인쇄되지 않지만 출력은 그럴 것입니다.
  • 만약 너라면 추가하다 -Werror 너의 ~에게 CFLAGS 가변 (당신은 하나가 있습니다. 당신은 그렇지 않습니까? 일반적인 관행입니다!), 당신은 확실히 경고를 놓치지 않을 것입니다-빌드는 첫 번째 후에 멈출 것입니다.
  • 당신은 할 수 있습니다 명령의 표준 출력을 리디렉션합니다 /dev/null, 오류 스트림 만 남기지 않습니다 (GCC는 일반적으로 출력을 얻지 못하지만 다른 명령에 도움이 될 수 있기 때문에 특정 경우가 아닙니다.

불행히도 qmake 두 번째 접근법 만 적용됩니다. 프로젝트 파일에 추가 :

QMAKE_CFLAGS+=-Werror
QMAKE_CXXFLAGS+=-Werror

생성 된 MakeFiles는 컴파일러를 호출 할 때이 플래그를 사용하므로 경고마다 빌드가 중지됩니다.


(이 섹션은 다른 질문이 나타나 자마자 다른 질문으로 이동됩니다).

평소를 위해 모든 것을 사용할 수 있습니다. 모두 구성 가능하게 만들 수 있습니다! 예는 다음과 같습니다.

trace?=short

ifeq ($(trace),short)
  suppress_echo=@
  redirect_to_null=1>/dev/null

else ifeq ($(trace),full)
  suppress_echo=
  redirect_to_null=

else ifeq ($(trace),werror)
  CFLAGS+=-Werror

else
  $(error Incorrect trace type "$(trace)"!)
endif

# Thanks to Martin York for the source of this copy-pasted code
out.ext:  $(OBJ)
    @echo $(CC) $(CFLAGS) -o out.ext $(redirect_to_null)
    $(suppress_echo)$(CC) $(CFLAGS) -o out.ext $(OBJ) $(redirect_to_null)

따라서 호출하면 make 이와 같이:

$ make trace=full

그것은 모든 것을 인쇄 할 것입니다. 당신이 호출하면

$ make

그만큼 short 값은 기본적으로 사용됩니다 (참고 ?= 평소 대신 운영자 =!) 그리고 규칙은 그러한 버전으로 확장됩니다.

out.ext: out.o
    @echo cc  -o out.ext 1>/dev/null
    @cc  -o out.ext out.o 1>/dev/null

필요한대로 무엇을 줄 것인가.

구성과 함께 이러한 접근 방식은 프로덕션 코드에 사용됩니다. 예를 들어, 나는 Ubuntu의 Icedtea makefiles에서 그것을 보았습니다.

'@'로 인쇄물을 억제하고보고 싶은 것을 반향 할 수 있습니다.

Simple Example:

out.ext:  $(OBJ)
    @echo $(CC) -o out.ext
    @$(CC) -o out.ext $(OBJ) $(OTHER_FLAGS_ETC)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top