Как запустить PVS Studio из командной строки из Windows 7?

Я новичок в PVS Studio. Я установил его в автономном режиме (без Visual Studio). Я хотел бы запустить PVS Studio из командной строки (из терминала Cygwin64) из 64-разрядной версии Windows 7 Professional. Я хочу статически проанализировать только один файл 'main.c'. Я использую официальную документацию: https://www.viva64.com/ru/m/0006/. Я хочу проверить простой фрагмент кода, расположенный в моем тестовом файле 'main.c':

#include <stdio.h>

int main(void)
{
    int a = 1;
    int b = 2;
    printf("%s: test message; 'a': '%d'; 'b': '%d'\n",
        __FUNCTION__, a, b, (a + b));
    return 0;
}

Мой фрагмент кода был успешно скомпилирован с помощью mingw32-make.exe. Я запустил эти команды из командной строки (из терминала Cygwin64 в режиме пользователя, а не в режиме администратора):

cd /cygdrive/c/Program\ Files\ \(x86\)/PVS-Studio/x64
./PVS-Studio.exe --cl-params "C:\\all\\projects\\c\\pvs_studio\\2\\main.c" /D"x64" /I"C:\\all\\projects\\c\\pvs_studio\\2" --source-file "C:\\all\\projects\\c\\pvs_studio\\2\\main.c" --cfg "C:\\all\\projects\\c\\pvs_studio\\2\\PVS-Studio.cfg" --output-file "c:\\all\\projects\\c\\pvs_studio\\2\\output.txt"

Содержимое файла 'PVS-Studio.cfg':

vcinstalldir = C:\all\soft\mingw\bin\gcc.exe
platform = x64
preprocessor = gcc
language = C

Содержимое файла "output.txt":

Viva64-EM
<#~>full
<#~>1
<#~>c:\all\projects\c\pvs_studio\2\main.c
<#~>error
<#~>V008
<#~>Unable to start the analysis on this file. Preprocessor exit code: 1.
<#~>false
<#~>0
<#~><#~><#~><#~>

Произошла ошибка "V008". Как исправить эту ошибку? Я прочитал эту документацию: https://www.viva64.com/ru/w/v008/, но не понимаю, где ошибка?

1 ответ

Попробуйте установить 'vcinstalldir' в 'C:\all\soft\mingw\bin\' - этот параметр должен указывать на каталог установки компилятора, а не полный путь компилятора. Если после этого у вас по-прежнему возникают ошибки V008, проверьте процесс stdErr анализатора, он должен содержать дополнительную информацию о том, почему предварительная обработка не удалась.

В качестве альтернативы, вы можете просто запустить предварительную обработку самостоятельно и передать полученный предварительно обработанный файл в анализатор через параметр i-file. В этом случае вы также должны передать 'skip-cl-exe = yes' в конфигурации. Этот способ позволяет вам контролировать предварительную обработку самостоятельно.

Другие вопросы по тегам