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.

Drealmer
sumber
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.

yrp
sumber
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
Tetap link ke Vera: bitbucket.org/verateam/vera
congusbongus
49

Google c ++ lint dari panduan gaya kode Google .

konferensi janes
sumber
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.

tatsuhirosatou
sumber
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.

Pieter
sumber
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.

Joshua
sumber
3

Ada daftarnya . Ada juga diduga C ++ frontend pada belat .

EfForEffort
sumber
8
-1 karena pertanyaan secara eksplisit mengatakan "tidak mencari penganalisa kode statis".
squelart
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.

udpsunil
sumber
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.

Mateusz Piotrowski
sumber
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.

Wernight
sumber
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,

Thomi
sumber
4
Komit terakhir adalah pada Juni 2009. Tampaknya tidak lagi dikembangkan.
Eponim