Darmowe narzędzie do sprawdzania kodu źródłowego C / C ++ pod kątem zestawu standardów kodowania? [Zamknięte]

151

Wydaje się, że znalezienie takiego narzędzia dla Javy ( Checkstyle , JCSC ) jest dość łatwe , ale nie mogę znaleźć takiego dla C / C ++. Nie szukam statycznego analizatora kodu podobnego do kłaczków, chciałbym tylko sprawdzić standardy kodowania, takie jak nazewnictwo zmiennych, wielkie litery, odstępy, identyfikacja, umieszczenie nawiasów i tak dalej.

Drealmer
źródło
3
Jeśli nie znajdziesz tutaj odpowiedzi, której szukasz, rozważ to pytanie: stackoverflow.com/q/10819398/120163
Ira Baxter

Odpowiedzi:

57

Jedyne narzędzie, które znam, to Vera . Nie używałem go jednak, więc nie mogę komentować, jak to jest opłacalne. Demo wygląda obiecująco.

yrp
źródło
Przetestowałem to i jest to dość proste. Ale to działa!
Jader Dias
7
Próbowałem, ale byłem rozczarowany. To tokenizował kod C ++, ale ma tylko jeden typ tokenu dla „identyfikatorów”, więc nie rozróżnia między, powiedzmy, nazwami klas, zmiennymi składowymi i zmiennymi lokalnymi. Dlatego nie ma sposobu, aby wymusić różne konwencje nazewnictwa dla różnych typów identyfikatorów.
John W
Vera nie ma bardzo wszechstronnego zestawu reguł - ale można je rozszerzać (w TCL)
fmuecke
2
„Rozszerzalny” tylko w przypadku bardzo prostych zadań. Ponieważ Verera rozumie C ++ jest płytkie, każda „głęboka kontrola stylu” (rozważ możliwą regułę [nie sugeruję dobrej]: dla każdej alokacji jest odpowiadające jej zwolnienie w tej samej funkcji) będzie musiało zakodować odpowiednią wiedzę C ++, i to jest naprawdę bardzo trudne, co oznacza, że ​​tak się nie stanie.
Ira Baxter
Naprawiono link do Vera: bitbucket.org/verateam/vera
congusbongus
49

Google c ++ lint z przewodnika stylistycznego kodu Google .

janesconference
źródło
4
+1. To jest bardzo miłe - choć ma bardzo surowy styl. Nie jest to łatwe do rozszerzenia według własnych zasad, jak w przypadku vera ++.
fmuecke
Świetnie, jeśli używasz stylu Google C ++ :) +1
jkp
3
Zakładam, że to teraz nazywa się cpplint. Można go znaleźć pod adresem github.com/google/styleguide/tree/gh-pages/cpplint , powyższy link do c ++ lint jest uszkodzony.
Zitrax
Tylko w celach informacyjnych, aby zainstalować, możesz użyć "pip install cpplint". Następnie możesz po prostu użyć „cpplint file.cpp” lub „cpplint --recursive”. zamiast „./cpplint.py”, co jest dużo preferowanym IMO. Łatwiejsze niż pobieranie przez github przynajmniej
Colin D
8

Jestem pewien, że to może pomóc w pewnym stopniu sprawdzić cxx . Również to narzędzie wydaje się całkiem niezłe. KWStyle Pochodzi z Kitware, twórców Cmake.

tatsuhirosatou
źródło
1
cxxchecker wydaje mi się teraz bardzo martwy.
stefanct
cxx checker to martwy link.
Wolf
7

Nie jest to dokładnie to, o co prosisz, ale stwierdziłem, że łatwiej jest po prostu wszyscy zgodzić się na standard kodowania, który może wygenerować, a następnie zautomatyzować proces.

Pieter
źródło
1
Lepiej wyjaśnij, że ArtisticStyle skupia się wyłącznie na formatowaniu, co oczywiście nie jest złe :)
Wolf
6

Wypróbuj nsiqcppstyle . Jest to oparty na Pythonie program do sprawdzania stylu kodowania dla C / C ++. Można łatwo rozszerzyć, aby dodać własne zasady.

Joshua
źródło
3

Jest lista . Istnieje również domniemana nakładka C ++ na szynę .

EfForEffort
źródło
8
-1, ponieważ pytanie wyraźnie mówiło „nie szukam statycznego analizatora kodu”.
squelart
2

W swojej pracy korzystałem z narzędzia its zestawu narzędzi LDRA

Służy do testowania kodu c / c ++, ale może również sprawdzać standardy kodowania, takie jak MISRA itp.

udpsunil
źródło
1
Dlaczego to jest zmodyfikowane? Nawet jeśli LDRA jest również analizatorem statycznym - czymś, czego pytanie nie dotyczy - uważam, że jest również w stanie sprawdzić kod pod kątem naruszeń standardu kodowania.
Vitor Py,
4
LDRA kosztuje mniej więcej tyle, ile przeciętny samochód ... nie mój pomysł na darmowy.
Lundin
2

Sprawdź universalindentguina sourceforge.net .

ma wiele warcabów stylu dla C i możesz dostosować warcaby.

Mateusz Piotrowski
źródło
UniversalIndentGUI Posiada funkcję podglądu na żywo, może eksportować konfigurację i eksportować skrypt. Świetnie nadaje się do wypróbowywania różnych „wcięć”, takich jak wcięcie GNU, styl artystyczny i Uncrustify.
congusbongus
1

Istnieje cppcheck, który jest również obsługiwany przez Hudson za pośrednictwem wtyczki o tej samej nazwie.

Wernight
źródło
4
cppcheck to narzędzie do analizy statycznej, a nie to, czego dotyczy pytanie.
Vitor Py
Być może zmieniło się to od 2010 roku: Dziś Cppcheck zawiera również ostrzeżenia dotyczące kwestii stylistycznych. Ale cóż, OP wyraźnie wykluczył statyczne analizatory kodu.
Wolf
-1

Obecnie pracuję nad projektem z innym projektem, aby napisać właśnie takie narzędzie. Przyjrzałem się innym narzędziom do statycznej analizy kodu i zdecydowałem, że mogę zrobić lepiej.

Niestety projekt nie jest jeszcze gotowy do użycia bez dość intymnej wiedzy o kodzie ( czytaj: jest błędny jak diabli ). Jednak posuwamy się dość szybko i mamy nadzieję, że wersja beta zostanie wydana w ciągu najbliższych 8 tygodni.

Projekt jest open source - możesz odwiedzić stronę projektu , a jeśli chcesz się zaangażować, chcielibyśmy uzyskać więcej informacji z zewnątrz.

Nie będę Cię zanudzać szczegółami - możesz odwiedzić stronę projektu , ale powiem jedno: większość narzędzi do analizy kodu statycznego ma na celu sprawdzenie kodu pod kątem błędów i nie zajmuje się sprawdzaniem wskazówek dotyczących kodowania. Przyjęliśmy bardziej elastyczne podejście, które pozwala nam pisać wtyczki sprawdzające zarówno „reguły domowe”, jak i możliwe błędy.

Jeśli chcesz uzyskać więcej informacji, nie wahaj się ze mną skontaktować.

Twoje zdrowie,

Thomi
źródło
4
Ostatnie zatwierdzenie miało miejsce w czerwcu 2009 roku. Wydaje się, że nie jest już rozwijane.
Tytułowy