Как использовать и настроить Clang-Tidy на Windows? - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь использовать анализ кода clang-tidy, чтобы проверить CppCoreGuidelines.Я скачал готовый двоичный файл LLVM 7.0.0 для Win 7 64 бит.Я могу успешно скомпилировать с помощью clang, я сделал базовый пример компиляции этого кода, я назвал источник test.cpp:

// test.cpp
#include <iostream>

int main(int argc, char const *argv[])
{
    std::cout << "Hello World!" << std::endl;
    return 0;
}

Затем я запустил это в терминале:

clang test.cpp

Я получил этот вывод при компиляции:

test-c4b051.o : warning LNK4217: locally defined symbol __std_terminate imported in function "int `public: static unsigned __int64 __cdecl std::char_traits<char>::length(char const * const)'::`1'::dtor$2" (?dtor$2@?0??length@?$char_traits@D@std@@SA_KQEBD@Z@4HA)
test-c4b051.o : warning LNK4217: locally defined symbol _CxxThrowException imported in function "public: void __cdecl std::ios_base::clear(int,bool)" (?clear@ios_base@std@@QEAAXH_N@Z)

Но он работал нормально, печатая "Hello World", и все идет хорошо, пока здесь, но когда я хочу запустить clang-tidy, я получаю следующий вывод, когдаЯ запустил это, я взял ссылку отсюда Дополнительная документация Clang Tools 8 :

clang-tidy test.cpp -checks=-*,clang-analyzer-*,-clang-analyzer-cplusplus*



Error while trying to load a compilation database:
Could not auto-detect compilation database for file "test.cpp"
No compilation database found in C:\Users\uidr8361\Desktop\C++ or any parent directory
fixed-compilation-database: Error while opening fixed database: no such file or directory
json-compilation-database: Error while opening JSON database: no such file or directory
Running without flags.

Я прочитал эту ветку, но, похоже, это применимо к компиляции clang, и я не знаю,это также относится к дополнительным инструментам clang, в частности к clang-tidy: Как скомпилировать Clang в Windows

1 Ответ

0 голосов
/ 18 октября 2018

Просто поставьте - (минус минус) в командной строке в конце

clang-tidy -checks=-*,clang-analyzer-*,-clang-analyzer-cplusplus* test.cpp --

Обычно вы ставите аргументы cl, gcc, clang впоследствии

clang-tidy -checks=-*,clang-analyzer-*,-clang-analyzer-cplusplus* test.cpp -- -DDEBUG -I./include
...