Tôi bắt đầu làm việc trên một số dự án C đang xây dựng bằng cách sử dụng gcc. Tôi tin rằng sự lựa chọn này được thực hiện vì nhiều lý do:
- Phải biên dịch chéo cho cánh tay từ rất sớm (tôi nghĩ).
- Hiệu suất là thông số đầu tiên và quan trọng nhất.
- gccđã và vẫn là lựa chọn đầu tiên dễ dàng.
Tôi không có lý do để tranh cãi về sự lựa chọn đó và dù sao tôi cũng không ở vị trí để làm điều đó.
Các cơ sở mã của bất kỳ dự án duy nhất là tương đối nhỏ. Mọi dự án được xây dựng với Makefile tương đối sạch (hiện đang được làm mới), gcc -Wall -Wextragần như không phàn nàn gì và một số thử nghiệm tối thiểu đã được thực hiện. Không có phân tích tĩnh tự động hoặc định dạng mã được thực hiện và mã theo cú pháp không nhất quán, mặc dù nó rất dễ đọc và cảm thấy suy nghĩ.
Tôi không muốn định dạng lại từng dòng mã cùng một lúc, tôi dự định sẽ làm như được mô tả ở đâu đó xung quanh câu trả lời này (đặc biệt là vì bối cảnh thực sự không tệ): tái cấu trúc và chủ yếu định dạng lại càng nhiều càng tốt khi xử lý bất kỳ chủ đề nào, nhưng sill lấy chủ đề không có ý định phong cách mã trong tâm trí. Thật không may, tôi không ở vị trí áp đặt kiểu mã hoặc kiểm tra bổ sung cho các cam kết, nhưng tôi cảm thấy có ý nghĩa giữa các đồng nghiệp của mình rằng bạn nên tôn trọng quy ước mã hiện có khi sửa đổi tệp (Mặc dù tôi biết trạng thái hiện tại mã không xảy ra một cách kỳ diệu) và mong muốn viết mã tốt.
Đây là lần đầu tiên tôi lập trình bằng C với trạng thái tinh thần như vậy và tôi rất bị thu hút bởi các công cụ phân tích và định dạng mã khác nhau clangcung cấp.
Do đó, ý chính của câu hỏi của tôi là: nó có thể dẫn đến các vấn đề phải làm theo clanggợi ý và sử dụng clangcác công cụ định dạng và phân tích trong khi xây dựng gcckhông? Ví dụ: một số cảnh báo có thể đến từ một đại diện nội bộ gcckhông sử dụng hoặc từ mã byte clangsẽ có ý định tạo ra điều đó gcc.
Có cách nào tốt để tự động chuyển các gcctham số biên dịch (chủ yếu là mức kiến trúc đích và mức tối ưu hóa) để clangcác gợi ý cảnh báo có ý nghĩa không?
Tôi sẽ thêm rằng tôi quen thuộc gccvà báo cáo lỗi của nó. Tôi quan tâm đến việc nhận được nhiều cảnh báo và lỗi hơn (có liên quan), không chỉ là những lời cảnh báo tốt hơn và dễ hiểu hơn. Vì vậy, nếu tôi không thể tin tưởng các gợi ý bổ sung clangcó thể tạo ra dựa trên đại diện nội bộ của nó bởi vì tôi xây dựng gccvào cuối ngày, thì tôi không thực sự quan tâm đến việc này.
Tôi bao gồm rất nhiều bối cảnh vì vậy hãy thoải mái đưa ra bất kỳ nhận xét hoặc trả lời bất kỳ câu hỏi tiềm ẩn nào tôi không thể đưa ra.