======================== UBUNTU 23.10 - GCC13 ======================== -------------------------- compile_commands.json -------------------------- [ { "directory": "/home/user_xp/projects_cpp/demo_app/build/Desktop_Qt_6_6_3_GCC_64bit-Debug", "command": "/usr/bin/x86_64-linux-gnu-g++-13 -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -isystem /home/user_xp/projects_cpp/demo_app/boost/include -DQT_QML_DEBUG -g -std=c++17 -fdiagnostics-color=always -o CMakeFiles/BoostBeastServer.dir/main.cpp.o -c /home/user_xp/projects_cpp/demo_app/main.cpp", "file": "/home/user_xp/projects_cpp/demo_app/main.cpp", "output": "CMakeFiles/BoostBeastServer.dir/main.cpp.o" } ] -------------------------- build.ninja -------------------------- build CMakeFiles/BoostBeastServer.dir/main.cpp.o: CXX_COMPILER__BoostBeastServer_unscanned_Debug /home/user_xp/projects_cpp/demo_app/main.cpp || cmake_object_order_depends_target_BoostBeastServer DEFINES = -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB DEP_FILE = CMakeFiles/BoostBeastServer.dir/main.cpp.o.d FLAGS = -DQT_QML_DEBUG -g -std=c++17 -fdiagnostics-color=always INCLUDES = -isystem /home/user_xp/projects_cpp/demo_app/boost/include OBJECT_DIR = CMakeFiles/BoostBeastServer.dir OBJECT_FILE_DIR = CMakeFiles/BoostBeastServer.dir TARGET_COMPILE_PDB = CMakeFiles/BoostBeastServer.dir/ TARGET_PDB = BoostBeastServer.pdb -------------------------- CMakeLists.txt -------------------------- cmake_minimum_required(VERSION 3.20) project(BoostBeastServer) set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "") set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(Boost_ROOT "${CMAKE_SOURCE_DIR}/boost") #Local in folder ./boost/ set(Boost_NO_SYSTEM_PATHS ON) cmake_policy(SET CMP0144 NEW) find_package(Boost 1.85.0 REQUIRED COMPONENTS system thread) message(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}") add_executable(${PROJECT_NAME} main.cpp) target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE ${Boost_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} PRIVATE ${Boost_LIBRARIES}) -------------------------- main.cpp -------------------------- #include int main(){ return EXIT_SUCCESS; } --------------------------- Clang-Tidy output --------------------------- No real problem at linux here, but u see "-I/home/user_xp/projects_cpp/demo_app/boost/include" which has no "-isystem"! /opt/qt/Tools/QtCreator/libexec/qtcreator/clang/bin/clang-tidy '-config={Checks: '\''-*,clang-*,concurrency-*,cppcoreguidelines-*,-clang-diagnostic-*'\'', CheckOptions: []}' -export-fixes=/tmp/QtCreator-tNVICY/clangtools-NBSvzC/report-main.cpp-VvWDtb /home/user_xp/projects_cpp/demo_app/main.cpp -- -Wno-unknown-pragmas -Wno-unknown-warning-option -Wno-documentation-unknown-command -w -nostdinc -nostdinc++ -DQT_QML_DEBUG -g -std=c++17 -fdiagnostics-color=always -fsyntax-only -m64 --target=x86_64-linux-gnu -x c++ -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -I/home/user_xp/projects_cpp/demo_app/boost/include -isystem /usr/include/c++/13 -isystem /usr/include/x86_64-linux-gnu/c++/13 -isystem /usr/include/c++/13/backward -isystem /usr/local/include -isystem /opt/qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/17/include -isystem /usr/include/x86_64-linux-gnu -isystem /usr/include =================== WINDOWS- CYGWIN =================== I use cygwin and: GCC-COMPILER : gcc-g++ 13.2.1+20240426-0.1 (Using GCC compiler) LIB CLANG_STL : libc++-devel 8.0.1-1 (Using libc++-header from clang!) -------------------------- compile_commands.json -------------------------- [ { "directory": "D:/Projekte_CPP/DemoApp/build/Core-Debug", "command": "C:\\cygwin64\\bin\\g++.exe --sysroot=c:/cygwin64 -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -D_GNU_SOURCE -D_WIN32_WINNT=0x0A00 -D__USE_W32_SOCKETS -isystem C:/cygwin64/usr/include/c++ -isystem C:/cygwin64/usr/include/c++/v1 -isystem C:/cygwin64/usr/include/w32api -isystem D:/Projekte_CPP/DemoApp/boost/include -g -std=c++17 -fdiagnostics-color=always -o CMakeFiles\\BoostBeastServer.dir\\main.cpp.obj -c D:\\Projekte_CPP\\DemoApp\\main.cpp", "file": "D:\\Projekte_CPP\\DemoApp\\main.cpp", "output": "CMakeFiles\\BoostBeastServer.dir\\main.cpp.obj" } ] -------------------------- build.ninja -------------------------- build CMakeFiles/BoostBeastServer.dir/main.cpp.obj: CXX_COMPILER__BoostBeastServer_unscanned_Debug D$:/Projekte_CPP/DemoApp/main.cpp || cmake_object_order_depends_target_BoostBeastServer DEFINES = -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -D_GNU_SOURCE -D_WIN32_WINNT=0x0A00 -D__USE_W32_SOCKETS DEP_FILE = CMakeFiles\BoostBeastServer.dir\main.cpp.obj.d FLAGS = -g -std=c++17 -fdiagnostics-color=always INCLUDES = -isystem C:/cygwin64/usr/include/c++ -isystem C:/cygwin64/usr/include/c++/v1 -isystem C:/cygwin64/usr/include/w32api -isystem D:/Projekte_CPP/DemoApp/boost/include OBJECT_DIR = CMakeFiles\BoostBeastServer.dir OBJECT_FILE_DIR = CMakeFiles\BoostBeastServer.dir TARGET_COMPILE_PDB = CMakeFiles\BoostBeastServer.dir\ TARGET_PDB = BoostBeastServer.pdb -------------------------- CMakeLists.txt -------------------------- cmake_minimum_required(VERSION 3.20) project(BoostBeastServer) set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "") set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(Boost_ROOT "${CMAKE_SOURCE_DIR}/boost") set(Boost_NO_SYSTEM_PATHS ON) cmake_policy(SET CMP0144 NEW) find_package(Boost 1.85.0 REQUIRED COMPONENTS system thread) message(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}") add_executable(${PROJECT_NAME} main.cpp) target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE "C:/cygwin64/usr/include") target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE "C:/cygwin64/usr/include/c++") target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE "C:/cygwin64/usr/include/c++/v1") target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE "C:/cygwin64/usr/include/w32api") target_compile_definitions(${PROJECT_NAME} PRIVATE __USE_W32_SOCKETS) target_compile_definitions(${PROJECT_NAME} PRIVATE _WIN32_WINNT=0x0A00) target_compile_definitions(${PROJECT_NAME} PRIVATE _GNU_SOURCE) target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE ${Boost_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} PRIVATE ${Boost_LIBRARIES}) -------------------------- main.cpp -------------------------- #ifdef __clang__ #ifdef __CYGWIN__ #ifndef __MSABI_LONG # ifndef __LP64__ # define __MSABI_LONG(x) x ## l # else # define __MSABI_LONG(x) x # endif #endif #endif #endif #include int main(){ return EXIT_SUCCESS; } --------------------------- Clang-Tidy output --------------------------- Now it is a real problem for me, because clang-tidy seems to look into the boost-headers and cygwin headers! I tried adding the following to the ".clangd" file and that helped in that clangd no longer shows errors, but clang-tidy still doesn't work! - "-isystemD:/Projects_CPP/DemoApp/boost/include" D:\Qt\Tools\QtCreator\bin\clang\bin\clang-tidy.exe "-config={Checks: '-*,clang-*,cppcoreguidelines-*,-clang-diagnostic-*', CheckOptions: []}" "-export-fixes=C:\Users\user_xp\AppData\Local\Temp\QtCreator-hJtZHx\clangtools-jGDDLt\report-main.cpp-HdidzF" D:\Projekte_CPP\DemoApp\main.cpp -- -Wno-unknown-pragmas -Wno-unknown-warning-option -Wno-documentation-unknown-command -w -nostdinc -nostdinc++ -g "-std=c++17" "-fdiagnostics-color=always" -fsyntax-only -m64 "--target=x86_64-pc-cygwin" -x c++ -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -D_GNU_SOURCE "-D_WIN32_WINNT=0x0A00" -D__USE_W32_SOCKETS -ID:\Qt\Tools\QtCreator\share\qtcreator\cplusplus\wrappedMingwHeaders -IC:\cygwin64\usr\include\c++ -IC:\cygwin64\usr\include\c++\v1 -IC:\cygwin64\usr\include\w32api -ID:\Projekte_CPP\DemoApp\boost\include -isystem \usr\lib\gcc\x86_64-pc-cygwin\13\include\c++ -isystem \usr\lib\gcc\x86_64-pc-cygwin\13\include\c++\x86_64-pc-cygwin -isystem \usr\lib\gcc\x86_64-pc-cygwin\13\include\c++\backward -isystem D:\Qt\Tools\QtCreator\bin\clang\lib\clang\17\include -isystem C:\cygwin64\usr\include -isystem \usr\lib\gcc\x86_64-pc-cygwin\13\..\..\..\..\include\w32api error: too many errors emitted, stopping now [clang-diagnostic-error] D:/Projekte_CPP/DemoApp/main.cpp:7:13: warning: function-like macro '__MSABI_LONG' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage] 7 | # define __MSABI_LONG(x) x | ^ D:\Projekte_CPP\DemoApp\boost\include/boost/asio/detail/impl/socket_ops.ipp:335:33: error: cannot initialize a parameter of type '__ms_u_long *' (aka 'unsigned int *') with an rvalue of type 'ioctl_arg_type *' (aka 'unsigned long *') [clang-diagnostic-error] 335 | ::ioctlsocket(s, FIONBIO, &arg); | ^~~~ C:\cygwin64\usr\include\w32api/winsock2.h:1007:76: note: passing argument to parameter 'argp' here 1007 | WINSOCK_API_LINKAGE int WSAAPI ioctlsocket(SOCKET s,__LONG32 cmd,u_long *argp); | ^ D:\Projekte_CPP\DemoApp\boost\include/boost/asio/detail/impl/socket_ops.ipp:389:42: error: cannot initialize a parameter of type '__ms_u_long *' (aka 'unsigned int *') with an rvalue of type 'ioctl_arg_type *' (aka 'unsigned long *') [clang-diagnostic-error] 389 | int result = ::ioctlsocket(s, FIONBIO, &arg); ....