qmake 프로젝트 파일을 변경하여 !!을 만들려면 어떻게해야합니까?). 컴파일 라인이 계속 커지고 한 줄 경고/오류가 거의 사라집니다.qmake 빌드 출력을 포맷/변경하는 방법
내가 관련
qmake 프로젝트 파일을 변경하여 !!을 만들려면 어떻게해야합니까?). 컴파일 라인이 계속 커지고 한 줄 경고/오류가 거의 사라집니다.qmake 빌드 출력을 포맷/변경하는 방법
내가 관련
qmake
에서, 당신은 자동 구성 옵션을 추가 할 수 있습니다
CONFIG += silent
(참고 :.. 나는 그 명령 생각 그것은이 비슷한입니다) 출력의 대부분을 억제한다
, 경고 및 오류와 함께 "ao 컴파일"과 같은 인쇄 줄만 표시됩니다. 나는 (... 내가 그 사람 생각)이 make
의 .SILENT.
지침과 유사하다 생각
은 그 오류 파서 사용하려는 많은 정보를 억제하기 때문에 당신은, 그러나,이주의해야 할 수 있습니다. 예를 들어 SUBDIRS
구성으로 컴파일하는 경우 다른 디렉토리로 변경되면 인쇄되지 않습니다.
에
$(CC) in.ext -o out.ext
덕분에 같은 것을 생각하고 당신이 '@'인쇄물을 억제하고 당신이보고 싶은 에코 할 수 있습니다
간단한 예 :
를out.ext: $(OBJ)
@echo $(CC) -o out.ext
@$(CC) -o out.ext $(OBJ) $(OTHER_FLAGS_ETC)
어, 저는 qmake 내부에서만 마법을 없애고 싶습니다. 혼란을 드려 죄송합니다. –
OP가 qmake를 물었습니다 –
다른 접근 방식이 있습니다. 그리고 구성 가능하게 만들 수 있습니다.
@
기호를 추가 경우, 명령 자체가 인쇄되지 않습니다, 그러나 그것의 출력은 것이다. 당신이 당신의 CFLAGS
변수에 -Werror
를 추가 경우/dev/null
으로 리디렉션하여 오류 스트림 만 남겨 둘 수 있습니다 (gcc는 일반적으로 출력을 생성하지 않지만 다른 명령에 유용 할 수 있으므로 특정 경우는 아닙니다).불행히도 qmake
의 경우 두 번째 접근 방식 만 적용됩니다. 프로젝트 파일에 추가
QMAKE_CFLAGS+=-Werror
QMAKE_CXXFLAGS+=-Werror
그리고 빌드가 모든 경고에 중지 있도록 이러한 플래그를 사용합니다 생성 된 메이크 그들은, 컴파일러를 호출 할 때.
(이 섹션은 곧 다른 질문으로 이동합니다.)
일반적인 용도로 모든 것을 사용할 수 있습니다. 모든 설정을 할 수 있습니다! 다음의 예는 다음과 같습니다
trace?=short
ifeq ($(trace),short)
[email protected]
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
합니다. 당신이 short
값이 기본적으로 사용됩니다
$ make
호출하면
out.ext: out.o
@echo cc -o out.ext 1>/dev/null
@cc -o out.ext out.o 1>/dev/null
당신만큼을 줄 것이다 무엇 (! 대신 평소 =
의 ?=
연산자를 참고)와 규칙은 버전으로 확장됩니다 필요한 것.
이러한 접근 방식은 구성을 사용하여 프로덕션 코드에서 사용됩니다.예를 들어 Ubuntu의 IcedTea makefile에서이 파일을 보았습니다.
어, 저는 qmake 내부에서만 마법을 없애고 싶습니다. 혼란을 드려 죄송합니다. –
+1 : -Werror의 경우. 이것이 IMO의 가장 좋은 제안이며 프로젝트 파일에서 수행 할 수 있습니다. – Troubadour
@hydroes : 내 대답을 편집하여 도움을 청했습니다. –
굉장합니다. 정확히 내가 필요로했던 것 –