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 -Wextra
gầ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 clang
cung 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 clang
gợi ý và sử dụng clang
các công cụ định dạng và phân tích trong khi xây dựng gcc
không? Ví dụ: một số cảnh báo có thể đến từ một đại diện nội bộ gcc
không sử dụng hoặc từ mã byte clang
sẽ có ý định tạo ra điều đó gcc
.
Có cách nào tốt để tự động chuyển các gcc
tham số biên dịch (chủ yếu là mức kiến trúc đích và mức tối ưu hóa) để clang
các gợi ý cảnh báo có ý nghĩa không?
Tôi sẽ thêm rằng tôi quen thuộc gcc
và 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 clang
có 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 gcc
và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.