Внешний заголовок Clang-TidC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Внешний заголовок Clang-Tid

Сообщение Anonymous »

контекст < /h4>
Полный источник проекта < /p>
Я пытаюсь настроить проект Cmake с Clang-tidy. Однако при транзитивном анализе моего включения, это, кажется, переходит во внешние файлы заголовков. Например: < /p>
[list]
[*][code]CMakeLists.txt[/code] (root-level)
[/list]
[code]# ...
find_program(CLANG_TIDY_EXE NAMES "clang-tidy")
if(CLANG_TIDY_EXE)
message(STATUS "Found clang-tidy: ${CLANG_TIDY_EXE}")
else()
message(FATAL_ERROR "clang-tidy not found!")
endif()

function(enable_clang_tidy target)
set_target_properties(${target} PROPERTIES
CXX_CLANG_TIDY "${CLANG_TIDY_EXE};--quiet"
)
endfunction()
# ...
< /code>
[list]
[*]src/CMakeLists.txt[/code]
[/list]
[code]find_path(TCLAP_INCLUDE_DIR tclap/CmdLine.h
HINTS /opt/homebrew/include /usr/local/include /usr/include
)

if(NOT TCLAP_INCLUDE_DIR)
message(FATAL_ERROR "TCLAP not found. Please install it with `brew install tclap`.")
endif()

add_executable(ccwc main.cpp)
target_include_directories(ccwc SYSTEM PRIVATE ${TCLAP_INCLUDE_DIR})
target_link_libraries(ccwc)
enable_clang_tidy(ccwc)
< /code>
ошибка < /h4>
/opt/homebrew/include/tclap/Arg.h:473:53: error: Call to virtual method 'Arg::toString' during construction bypasses virtual dispatch [clang-analyzer-optin.cplusplus.VirtualCall,-warnings-as-errors]
473 | "Argument flag can only be one character long", toString() ) );
< /code>
обходной путь < /h4>
с вышеизложенным я в настоящее время использую строку: < /p>
#include

TCLAP::CmdLine myCmd("Count bytes in file", ' ', "0.1"); // NOLINT
[/code]
Другие вещи, которые я попробовал

[*] Использование cmake_cxx_clang_tidy : это становится хуже, поскольку он начинает анализировать и источник GTEST, а не целевой. /> < /li>
< /ul>

Код: Выделить всё

find_path(TCLAP_INCLUDE_DIR tclap/CmdLine.h
HINTS /opt/homebrew/include /usr/local/include /usr/include
)

add_library(tclap INTERFACE)
target_include_directories(tclap INTERFACE ${TCLAP_INCLUDE_DIR})

add_executable(ccwc main.cpp)
target_link_libraries(ccwc PRIVATE tclap)

Вопрос

Как я могу исправить свою конфигурацию, так что это работает без nolint ?
Как я могу использовать cmake_cx_clang_tidy , который, как ожидается>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ke-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»