Alat gratis untuk memeriksa kode sumber C / C ++ terhadap sekumpulan standar pengkodean? [Tutup]


151

Tampaknya cukup mudah untuk menemukan alat seperti itu untuk Java ( Checkstyle , JCSC ), tetapi saya sepertinya tidak dapat menemukannya untuk C / C ++. Saya tidak mencari penganalisa kode statis seperti serat, saya hanya ingin memeriksa terhadap standar pengkodean seperti penamaan variabel, kapitalisasi, spasi, identifikasi, penempatan braket, dan sebagainya.


3
Jika Anda tidak menemukan jawaban yang Anda inginkan di sini, pertimbangkan pertanyaan ini: stackoverflow.com/q/10819398/120163
Ira Baxter

Jawaban:


57

Satu-satunya alat yang saya tahu adalah Vera . Namun, belum digunakan, jadi tidak dapat mengomentari seberapa layaknya itu. Demo terlihat menjanjikan.


Saya sudah mengujinya, dan itu sangat sederhana. Tapi berhasil!
Jader Dias

7
Saya mencobanya tetapi kecewa. Ini diubah kode C ++ tetapi hanya memiliki satu jenis token untuk "pengidentifikasi", sehingga tidak membedakan antara nama kelas katakan, variabel anggota dan variabel lokal. Karena itu tidak ada cara saya bisa menemukan untuk menerapkan konvensi penamaan yang berbeda untuk berbagai jenis pengidentifikasi.
John W

Vera tidak memiliki seperangkat aturan yang sangat komprehensif - tetapi aturan itu dapat diperpanjang (dalam TCL)
fmuecke

2
"Extensible" hanya untuk tugas yang sangat sederhana. Karena pemahaman Vera tentang C ++ adalah dangkal, setiap "pemeriksaan gaya mendalam" (pertimbangkan aturan [saya tidak menyarankan yang baik]: untuk setiap alokasi, ada deallokasi yang sesuai dalam fungsi yang sama) harus menyandikan pengetahuan C ++ yang sesuai, dan itu sangat sulit, yang berarti itu tidak akan terjadi.
Ira Baxter


49

4
+1. Ini sangat bagus - meskipun memang memiliki gaya yang sangat ketat. Tidak mudah untuk memperpanjang dengan aturan sendiri seperti dengan vera ++.
fmuecke

Hebat jika Anda menggunakan gaya C ++ Google :) :) +1
jkp

3
Saya berasumsi ini sekarang disebut cpplint. Hal ini dapat ditemukan di github.com/google/styleguide/tree/gh-pages/cpplint , tautan di atas ke c ++ lint rusak.
Zitrax

Hanya untuk referensi, untuk menginstal, Anda dapat menggunakan "pip install cpplint". Kemudian Anda bisa menggunakan "cpplint file.cpp" atau "cpplint --recursive." alih-alih "./cpplint.py" yang jauh lebih disukai IMO. Lebih mudah daripada mengunduh melalui github setidaknya
Colin D


8

Saya yakin ini dapat membantu untuk beberapa derajat pemeriksa cxx . Juga alat ini tampaknya KWStyle cukup bagus Ini dari Kitware, orang-orang yang mengembangkan Cmake.


1
cxxchecker tampaknya sangat mati bagi saya sekarang.
stefanct

cxx checker adalah tautan mati.
Wolf

7

Tidak persis apa yang Anda minta, tetapi saya merasa lebih mudah untuk menyetujui semua standar pengkodean yang dapat dihasilkan oleh astyle dan kemudian mengotomatiskan prosesnya.


1
Anda lebih baik menjelaskan bahwa ArtisticStyle hanya berfokus pada pemformatan yang tentu saja bukan hal yang buruk :)
Wolf

6

Coba nsiqcppstyle . Ini adalah pemeriksa gaya pengkodean berbasis Python untuk C / C ++. Mudah diperluas untuk menambahkan aturan Anda sendiri.



2

Saya telah menggunakan alat dalam pekerjaan saya suite alat LDRA-nya

Ini digunakan untuk menguji kode c / c ++ tetapi juga dapat memeriksa terhadap standar pengkodean seperti MISRA dll.


1
Mengapa ini down modded? Bahkan jika LDRA juga merupakan penganalisa statis - sesuatu yang tidak dicari oleh pertanyaan - saya percaya itu juga mampu memeriksa kode untuk pelanggaran standar pengkodean.
Vitor Py

4
Biaya LDRA sekitar sebanyak mobil rata-rata ... bukan ide saya gratis.
Lundin

2

Periksa universalindentguidi sourceforge.net .

ini memiliki banyak checker gaya untuk C dan Anda dapat menyesuaikan checker.


UniversalIndentGUI Ini memiliki fungsi pratinjau langsung, dapat mengekspor konfigurasi dan mengekspor skrip. Ini bagus untuk mencoba "indenters" yang berbeda, seperti GNU Indent, Artistic Style dan Uncrustify.
congusbongus

1

Ada cppcheck yang didukung juga oleh Hudson melalui plugin dengan nama yang sama.


4
cppcheck adalah alat analisis statis dan bukan apa yang dicari oleh pertanyaan itu.
Vitor Py

Mungkin ini berubah sejak 2010: Hari ini Cppcheck juga menyertakan peringatan untuk masalah gaya. Tetapi, OP secara eksplisit mengecualikan penganalisa kode statis.
Wolf



-1

Saat ini saya sedang mengerjakan proyek dengan proyek lain untuk menulis alat seperti itu. Saya melihat alat analisis kode statis lainnya dan memutuskan bahwa saya bisa melakukan yang lebih baik.

Sayangnya, proyek ini belum siap untuk digunakan tanpa pengetahuan yang cukup intim tentang kode ( baca: itu buggy karena semua ). Namun, kami bergerak cukup cepat, dan berharap memiliki rilis beta dalam 8 minggu ke depan.

Proyek ini open source - Anda dapat mengunjungi halaman proyek , dan jika Anda ingin terlibat, kami akan lebih menyukai input eksternal.

Saya tidak akan membuat Anda bosan dengan detailnya - Anda dapat mengunjungi halaman proyek untuk itu, tetapi saya akan mengatakan satu hal: Kebanyakan alat analisis kode statis ditujukan untuk memeriksa kesalahan kode Anda, dan tidak terlalu peduli dengan memeriksa pedoman pengkodean. Kami telah mengambil pendekatan yang lebih fleksibel yang memungkinkan kami untuk menulis plugin untuk memeriksa "aturan rumah" serta kemungkinan bug.

Jika Anda menginginkan informasi lebih lanjut, jangan ragu untuk menghubungi saya.

Bersulang,


4
Komit terakhir adalah pada Juni 2009. Tampaknya tidak lagi dikembangkan.
Eponim
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.