Безкоштовний інструмент для перевірки вихідного коду C / C ++ щодо набору стандартів кодування? [зачинено]


151

Це виглядає досить легко знайти такий інструмент для Java ( Checkstyle , СЗАО ), але я не можу знайти для C / C ++. Я не шукаю аналізатор статичного коду, що схожий на ворсинку, я хотів би лише перевірити стандарти кодування, такі як імена змінних, написання великої літери, інтервал, ідентифікація, розміщення дужок тощо.


3
Якщо ви не знайдете потрібної відповіді тут, розгляньте це питання: stackoverflow.com/q/10819398/120163
Іра Бакстер

Відповіді:


57

Єдиний інструмент, який я знаю - це Віра . Не використовував, проте не можу коментувати, наскільки він життєздатний. Демо виглядає перспективно.


Я перевірив це, і це досить просто. Але це працює!
Джадер Діас

7
Я спробував це, але розчарувався. Він токенізує код C ++, але має лише один тип лексеми для "ідентифікаторів", тому він не розмежовує між назвами класів, членами змінних та локальними змінними. Тому я не можу знайти примусово застосовувати різні умови іменування до різних типів ідентифікатора.
Джон W

У Віри немає дуже вичерпного набору правил - але вони можна розширити (у TCL)
fmuecke

2
"Розширюваний" лише для дуже простих завдань. Оскільки розуміння Вірою C ++ є неглибоким, будь-яка "перевірка глибокого стилю" (врахуйте можливе [я не пропоную гарне] правило: для кожного розподілу є відповідне розселення в одній і тій же функції) доведеться кодувати відповідні знання C ++, і це дійсно важко, а значить, цього не відбудеться.
Іра Бакстер

Виправлене посилання на Віру: bitbucket.org/verateam/vera
congusbongus

49

4
+1. Це дуже приємно - хоча він має дуже суворий стиль. Не так просто розширити за допомогою власних правил, як-от vera ++.
fmuecke

Чудово, якщо ви використовуєте стиль C ++ Google + :) +1
jkp

3
Я припускаю, що це зараз те, що називається cpplint. Його можна знайти за адресою github.com/google/styleguide/tree/gh-pages/cpplint , посилання вище до lint c ++ порушено.
Zitrax

Тільки для довідки, щоб встановити, ви можете використовувати "pip install cpplint". Тоді ви можете просто використовувати "cpplint file.cpp" або "cpplint --рекурсивний." замість "./cpplint.py", що є набагато кращим IMO. Простіше, ніж завантажувати принаймні через github
Colin D


8

Я впевнений , що це може допомогти в деякій мірі Cxx перевірки . Також цей інструмент здається досить хорошим KWStyle. Це від Kitware, хлопці, які розробляють Cmake.


1
cxxchecker зараз здається мені дуже мертвим.
stefanct

cxx checker - це мертве посилання.
Вовк

7

Не зовсім те, про що ви просите, але мені було легше просто домовитись про те, що стандартний стиль кодування може генерувати та автоматизувати процес.


1
Ви краще дайте зрозуміти, що ArtisticStyle зосереджується виключно на форматуванні, що, звичайно, не погано :)
Вовк

6

Спробуйте nsiqcppstyle . Це перевірка стилю кодування на основі Python для C / C ++. Це легко розширити, щоб додати свої власні правила.



2

Я використовував інструмент у своїй роботі, набір інструментів LDRA

Він використовується для тестування коду c / c ++, але він також може перевіряти стандарти кодування, такі як MISRA тощо.


1
Чому це зменшено? Навіть якщо LDRA також є статичним аналізатором - чогось питання не шукають - я вважаю, що він також здатний перевірити код на порушення стандарту кодування.
Vitor Py

4
LDRA коштує приблизно стільки, скільки ваш середній автомобіль ... не моя ідея безкоштовного.
Лундін

2

Перевірте universalindentguiна sourceforge.net .

У ньому багато шашок стилів для C, і ви можете налаштувати шашки.


UniversalIndentGUI Він має функцію попереднього перегляду, може експортувати конфігурацію та експортувати скрипт. Це чудово для випробування різних "відступів", таких як відступ GNU, Artistic Style та Uncrustify.
congusbongus

1

Є cppcheck, який підтримується також Hudson через однойменний плагін.


4
cppcheck - це інструмент статичного аналізу, а не те, що питання шукає.
Vitor Py

Можливо, це змінилося з 2010 року: сьогодні Cppcheck також включає попередження щодо стилістичних питань. Але, добре, ОП явно виключив аналізатори статичного коду.
Вовк



-1

Зараз я працюю над іншим проектом, щоб написати саме такий інструмент. Я переглянув інші інструменти аналізу статичного коду і вирішив, що можу зробити краще.

На жаль, проект ще не готовий до використання без досить інтимного знання коду ( читай: це баггі, як усе пекло ). Однак ми рухаємось досить швидко, і сподіваємось, що вийде бета-версія протягом найближчих 8 тижнів.

Проект є відкритим кодом - ви можете відвідати сторінку проекту , і якщо ви хочете долучитися, ми хотіли б ще кілька зовнішніх даних.

Я не буду набридати деталями - ви можете відвідати сторінку проекту для цього, але я скажу одне: Більшість інструментів аналізу статичного коду спрямовані на перевірку вашого коду на помилки, і не дуже переймаються питанням перевірки настанови щодо кодування. Ми застосували більш гнучкий підхід, який дозволяє нам писати плагіни, щоб перевірити наявність "правил будинку", а також можливих помилок.

Якщо ви хочете отримати більше інформації, будь ласка, не соромтеся зв’язатися зі мною.

Ура,


4
Останнє зобов’язання було в червні 2009 року. Схоже, воно більше не розвинене.
однойменний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.