저는 C++ 프로그램을 컴파일하고 g++
있는데 매번 수많은 오류가 발생합니다. 그래서 첫 번째(그리고 가장 관련성이 높은) 오류를 보고 싶을 때마다 위로 스크롤해야 했습니다. 프로그램을 컴파일할 때 터미널에 표시되는 오류 메시지 수를 제한할 수 있는 옵션이 있는지 알고 싶습니다.
답변1
-fmax-errors=1
옵션을 사용하여 오류 수를 1 등으로 설정할 수 있습니다 . 기본값 0은 무한입니다. 이것걸프 협력 협의회옵션이 적용됩니다 g++
.
답변2
여러 가지 옵션이 있습니다:
- 다른 답변에 표시된 것처럼 컴파일러 옵션을 사용하여 컴파일러가 완전히 포기하기 전에 오류 메시지 수에 대한 제한을 설정하십시오.
- 를 사용하고
head
오류 메시지를 기억하세요표준 오류로 전송됩니다.틀림없이. 아니면 다음 중 하나를 사용하세요.많은사후 처리 GCC 출력을 위해 떠다니는 도구입니다. 또한 clang 모델을 채택한 최신 버전의 GCC에서는 단일 오류가 여러 줄에 걸쳐 있을 수 있으므로 줄 수가 적은 것은head
전혀 유용하지 않을 수 있습니다. pager
, 또는 와 같은 호출기를 사용하고 오류 메시지를 다시 기억하십시오pg
.more
less
표준 오류로 전송됩니다..- NeoVIM에서 컴파일 명령을 실행하면
:terminal
광범위한 스크롤백 기능은 물론 출력 상단으로 빠르게 이동하여 검색할 수 있는 일반적인 VIM 탐색 키 시퀀스도 모두 제공됩니다. - 텍스트 편집기와 통합하세요.
후자가 가장 흥미로운 옵션입니다. 최소한 두 가지 맛이 있습니다.
- 컴파일러의 표준 출력 + 표준 오류를 파일에 기록하고 텍스트 편집기에 이를 다음과 같이 처리하도록 지시합니다.오류 파일. 이는 Vim과 NeoVIM을 사용하여 수행할 수 있습니다.
vim -q 오류 파일
그리고nvim -q 오류 파일
errors_file
물론 원하는 이름으로 바꿀 수도 있습니다.그러면 텍스트 편집기가 열리고 오류 파일이 빠른 수정 버퍼에 로드됩니다. 그러면 첫 번째 오류 또는 경고 메시지에 대한 파일이 열리고 해당 오류의 줄 번호(및 열)에 배치됩니다.
- 텍스트 편집기에서 컴파일러를 실행합니다. Vim 및 NeoVIM을 사용하면 makefile이 있는 경우 명령을 사용하여 이를 호출할 수 있습니다
:make
. VIM/NeoVIM은 런타임 오류 출력을make
빠른 수정 목록에 넣고 첫 번째 오류 또는 경고의 파일, 줄 및 열 정보를 자동으로 찾습니다. 다시. .
물론 이 두 가지 방법을 사용하면 에 :cnext
나열된 다양한 다른 Vim/NeoVIM 빠른 수정 목록 탐색 명령을 사용하여 하나의 경고/오류 위치에서 다음 :help :cc
. 이러한 메커니즘에서는 오류 수를 제한할 이유가 없으며 현재 메시지 위치나 첫 번째 메시지 위치로 돌아가는 Vim/NeoVIM 명령이 있다는 점에 유의하세요.
특히 후자의 경우 여러 번 사용하고 실행하며 :make
이전 오류 목록과 새 오류 목록을 오가며 전환하는 것도 가능합니다. (VIM/NeoVIM 매뉴얼에서 , , 등을 사용하여 이외의 다른 프로그램을 실행하도록 변경할 수도 있습니다.):colder
:cnewer
:make
make
set makeprg
emacs를 사용하여 비슷한 작업을 수행할 수 있습니다.
답변3
compiling-command | head --lines 32
출력의 처음 32줄을 인쇄 하는 데 사용됩니다 compiling-command
.
또한 이를 사용하여 compiling-command | grep "Text to search" | head --lines 32
"검색할 텍스트"에 대한 처음 32개의 결과를 표시할 수도 있습니다.
gcc 비활성화 -Wall
옵션을 사용하면 많은 오류가 출력되지 않습니다.