Tôi đang trong quá trình di chuyển dự án hiện đang biên soạn với gcc thành clang, và có một loạt cảnh báo mà gcc không tạo (-Winconsistent-missing-override
). clang-tidy
hoạt động để sửa các lỗi này trong các tệp *.cpp
, tuy nhiên nó không chạm vào tệp hpp
vì lệnh biên dịch không được tìm thấy trong cơ sở dữ liệu (như tôi mong đợi).Bắt buộc phải sửa các tệp tiêu đề
Tôi đang sử dụng ninja
để tạo dự án và ninja -t compdb cc cxx > .build/compile_commands.json
để tạo cơ sở dữ liệu biên dịch. Tôi đã thử chạy:
clang-tidy-3.6 -p .build/ \
$(find src/ -name *.cpp) \
$(find src/ -name *.hpp) \
--checks=misc-use-override --fix
để sửa lỗi. Nó từ chối chạm vào các tệp tiêu đề phàn nàn:
Skipping .../src/header/file.hpp. Compile command not found.
Liên quan đến "sửa kết thúc được áp dụng nhiều lần": Đó là lý do tại sao có một kịch bản chạy kêu vang-gọn gàng mà đầu tiên thu thập các bản sửa lỗi và sau đó áp dụng chúng trong một lần * sau đó *. Xem http://clang-developers.42468.n3.nabble.com/Clang-tidy-applying-fixes-multiple-times-on-same-file-tp4048842p4049156.html – kfunk
Tôi hiểu. Mặc dù vậy, không phải là tài liệu rất tốt. Nếu bạn viết câu trả lời đó hoặc một bản chỉnh sửa được đề xuất, tôi sẽ rất sẵn lòng chấp nhận nó. (Tôi đã ngừng phát triển nhiều C++, vì vậy có lẽ tôi sẽ không thử nghiệm nó) – nishantjr