Có thể hướng dẫn trình biên dịch GNU c ++ dừng sau 5 lỗi được tìm thấy không? Không thể tìm thấy điều này trong tài liệu.
Câu trả lời:
Tùy chọn dòng lệnh hướng trình biên dịch từ bỏ sau N lỗi. Tùy chọn này có trong GCC 4.6 trở lên.-fmax-errors=N
Tùy chọn dòng lệnh -Wfatal-errors
hướng dẫn trình biên dịch từ bỏ sau một lỗi. Tùy chọn này có trong GCC 4.0 trở lên.
Trong cả hai trường hợp, cảnh báo không được tính vào giới hạn trừ khi bạn cũng chỉ định -Werror
.
-Wuninitialized
kết quả dương tính giả là: nó lãng phí I-cache trên các lệnh lưu trữ dead-but-not-provied-dead; và nếu có điều gì đó thay đổi khiến cảnh báo trở thành tích cực thực sự, chúng tôi muốn người có giá trị nắm bắt được.
-fmax-errors
cờ (kể từ arm-none-eabi-gcc 5.4.1). Tôi đang sử dụng tùy chọn -finstrument-functions
và tôi gặp hàng trăm lỗi do __cyg_profile_func_enter
chức năng không xác định .
Bạn có thể sử dụng tùy chọn gcc:
-fmax-errors=5
vì mục đích này.
Tôi cũng hoan nghênh một lựa chọn như vậy. Hiện tại, tôi đang sử dụng giải pháp sau để gặp năm lỗi đầu tiên:
<make> 2>&1|grep error|head -5
Tôi phải hỏi tại sao bạn muốn làm điều này. Đôi khi lỗi tồn tại trong mã không phải là lỗi đầu tiên hoặc thậm chí được tìm thấy trong năm lỗi đầu tiên. Đôi khi, nó vượt quá mức đó và chỉ có thể nhận ra khi bạn cuộn xuống danh sách. Một phương pháp tốt hơn có thể là chia nhỏ mã của bạn và đặt nó vào các thư viện nhỏ hơn nếu bạn thấy phiền bởi thời gian biên dịch. Hoặc nếu bạn lo lắng về những thứ cuộn ra khỏi màn hình của dòng lệnh, hãy sử dụng toán tử '>>' để chuyển các thông báo vào một tệp.
-Werror
. Tôi tin rằng các cảnh báo hoàn toàn nên được xử lý như thể chúng là lỗi, bởi vì hầu hết các cảnh báo là dấu hiệu của mã lỗi.