gcc가 오류를보고하도록 강제 할 수 있습니까? 본질적으로 .c 파일에서 오류 목록을 생성하려고하지만 gcc는 항상 첫 번째 오류에서 종료됩니다. 나는 잠시 동안 인터넷 검색을 해왔다. 그리고 이것은 내가 말할 수있는 것을 해결할 명백한 것이 아니다.gcc가 오류를 건너 뛰지 만 출력하는 방법.
답변
최신 버전의 GCC는 가능하면 특정 오류를 건너 뜁니다.
foo(){...
의 본문에는 const 위반이 있습니다. 번역 단위는 개체 파일을 생성하지 않지만 괜찮은 컴파일러는이 오류를 지나서 계속 bar(){...
다른 오류는 복구 할 수 없습니다. 일부 중괄호를 빠뜨린 경우 진행 방법에 관해서는 합리적인 추측은 없습니다. gcc online doc에서
GCC는 더 이상 진행할 수 없으면 종료됩니다.
컴파일러에서 오류가 발생하면 올바른 코드가 무엇인지 추측하고 따라야합니다. 사실상 나머지는 말도 안되기 때문에 항상 첫 번째 오류를 수정하고 컴파일을 다시 실행해야합니다.
-Wfatal-errors
을 켜지 않았는지 확인하십시오.
포스터 오류의 전체 목록을 가지고 찬성 컴파일 된 출력을 가진 포기할 것 같다. 일부 오류는 출력을 배제하더라도 프로그램 구문 분석을 방해하지 않습니다. 그러나 다른 사람들은 불일치() 나 {} 또는 ""다음 파싱이 의미있는 것으로 될 수있을 때까지 회복 할 수있는 막대한 지능이 필요할 것이라고 말합니다. –
이것은 정확합니다. 출력 객체에 관해서는이 시점에서 덜 신경 쓸 수 있습니다. 오류 목록에만 관심이 있습니다. 대부분의 오류는 x86보다는 ARCH = arm을위한 커널 모듈을 만들려고 시도했기 때문에 x86에 많은 x86 사양이 있습니다. 즉, rdtscll (x86 전용의 타임 스탬프 카운터를 읽습니다)이므로 일반적으로 코드 구조와 구문은 괜찮습니다. – chrisvarnz
:
-fmax-errors=n
Limits the maximum number of error messages to n, at which point GCC bails out rather than attempting to continue processing the source code. If n is 0 (the default), there is no limit on the number of error messages produced. If -Wfatal-errors is also specified, then -Wfatal-errors takes precedence over this option.
- 1. aapt : 포장시 파일을 건너 뛰지 마십시오 (
- 2. django가 사용자의 로그인 페이지를 건너 뛰지 않게하는 방법은 무엇입니까?
- 3. gcc가 중첩 클래스에서 오류를 반환합니다.
- 4. vba에서 빈 행이나 셀을 건너 뛰지 않는 방법은 무엇입니까?
- 5. PHP에서 배열을 출력하는 방법?
- 6. MsBuild - 배치 작업을 격리 할 수 있습니까? 하나의 실패한 작업이 나머지 작업을 건너 뛰지 않습니다.
- 7. 첫 번째 페이지 만 출력하는 보고서
- 8. App Engine (python)은 프로덕션 환경에서 Appstats와 같은 webapp 미들웨어를 건너 뛰지 만 dev 서버에서 정상적으로 작동합니다.
- 9. IE6에서 javascript의 오류를 건너 뛸 수 있습니까?
- 10. xmlreader 건너 뛰기 형제
- 11. struct에서 char을 출력하는 방법
- 12. Log4Net에서 XML을 출력하는 방법
- 13. 쿼리에서 부울을 출력하는 방법
- 14. JSON 출력을 출력하는 방법
- 15. 메시지를 출력하는 다른 방법
- 16. asp.net mvc 2 응용 프로그램에서 URL 입력을 통해 사용자가 페이지를 건너 뛰지 않도록하려면 어떻게해야합니까?
- 17. 유효성 검사 오류를 수정하기 위해 데이터 만 마이그레이션하는 동안 유효성 검사를 건너 뜁니다.
- 18. PHP에서 XML 문자열을 출력하는 방법
- 19. my_object.save (false)가 실제로 활성 레코드 유효성 검사를 건너 뛰지 않습니다.
- 20. 테스트가 실패했을 때 오이가 다른 테스트를 건너 뛰지 않도록 지시 할 수있는 방법이 있습니까?
- 21. csv.dictWriter.writerow (somerow)를 사용할 때 줄을 건너 뛰지 않도록하는 방법이 있습니까?
- 22. org.apache.xerces.parsers.SAXParser가 utf8로 인코딩 된 XML에서 BOM을 건너 뛰지 않는 이유는 무엇입니까?
- 23. C++/Windows에서 콘솔로 출력하는 방법
- 24. 길이가 다른 데이터를 출력하는 방법
- 25. MSBuild에서 타임 스탬프를 출력하는 방법
- 26. 방법의 결과를 android에 출력하는 방법
- 27. MP3를 사운드 카드에 출력하는 방법
- 28. 입력 변수의 이름을 출력하는 방법
- 29. DTrace : 메모리 버퍼를 출력하는 방법
- 30. JSTL 요청에서 데이터를 출력하는 방법
컴파일러에서 오류를 복구 할 수 있는지 여부를 나타 냅니까? 예를 들어 아래에 몇 가지 결과물을 게시 할 것입니다. make는 다음 객체로 계속 진행하지만 이전 gcc 오류로 인해 해당 객체의 컴파일이 종료되었거나 실제로 계속되었지만 더 이상 오류가 발생하지 않은 경우 명확하지 않습니다. – chrisvarnz
CC [M] /home/stebar01/elba/crystalhd/07032010/driver/linux/crystalhd_lnx.o /home/stebar01/elba/crystalhd/07032010/driver/linux/crystalhd_lnx.c:356:2 : 오류 : 알 수 없음 필드 'ioctl'이 이니셜 라이저에 지정됨 /home/stebar01/elba/crystalhd/07032010/driver/linux/crystalhd_lnx.c:356:2 : 경고 : 호환되지 않는 포인터 유형에서 초기화 됨 [2] : [/ home/stebar01/03932010/driver/linux/crystalhd_lnx.o] 오류 1 (무시) CC [M] /home/stebar01/elba/crystalhd/07032010/driver/linux/crystalhd_hw.o – chrisvarnz
ioctl 항목을 unlocked_ioctl로 변경했습니다. 그리고이 객체는 소란스럽지 않고 컴파일되었으므로 위의 예는 gcc가 오류를 지나서 계속 수행하는 예를 보여줍니다! 설명 주셔서 감사합니다. – chrisvarnz