cppcheck: Исходные файлы C или C не найдены, даже если файл присутствует в каталоге?

#python #c #static-analysis #static-code-analysis #cppcheck

Вопрос:

Я получаю сообщение об cppcheck: No C or C source files found. ошибке, даже если соответствующий файл присутствует в каталоге, в котором я выполняю поиск.

Это команда, которую я выполняю:

subprocess.call('cppcheck --dump --max-ctu-depth=0' cpp_file_path, shell = True)

В котором я хочу создать файл дампа и подавить любой более глубокий анализ программы (вот почему N=0 в --max-ctu-depth=N ). Каталог, в который я также захожу, cpp_file_path содержит чуть более 10 000 файлов. Есть ли флаг, который я могу использовать с утилитой cppcheck, чтобы убедиться, что она выполняет поиск по всему каталогу? Почему должна появиться ошибка, если этот файл .cpp присутствует в указанном каталоге? Я несколько раз подтверждал, что эти файлы действительно существуют.

Комментарии:

1. =0' cpp_file_path разве для этого не нужно место?

2. О боже мой. Это была такая глупая ошибка, которую я смог найти даже после нескольких часов изучения своего кода. Я просто перезаписал свой код, и теперь он проходит проверку большего количества файлов… Я обновлю, если возникнут еще какие-либо проблемы!

3. Я рекомендую не складывать вопросы в вопросы. Это приводит к действительно плохим вопросам. Если вы хотите вернуться к этому вопросу и превратить его в полезный вопрос, я бы сначала удалил его. Подождите слишком долго, и он будет закрыт как опечатка, и после этого вы ничего не сможете с ним сделать.

Ответ №1:

Ты прошел:

 cppcheck --dump --max-ctu-depth=0cpp_file_path
 

Предпочитайте использовать shell=False и передавать массив. Это также защитит вас от имени файла с пробелами.

 subprocess.call(['cppcheck', '--dump', '--max-ctu-depth=0', cpp_file_path])