VS Code中C++代码分析遇__float128不支持错误,如何关闭该类clang报错?
解决Clang-Tidy提示“__float128 is not supported on this target”的问题
你的问题出在VS Code内置的Clang-Tidy不支持当前MingW目标平台的__float128类型,但GCC 11.3的标准库中包含了该类型的相关代码,导致代码分析时触发错误。以下是几种可行的解决方法:
方法一:通过VS Code配置禁用GCC标准库的__float128支持
修改VS Code的settings.json,给Clang-Tidy添加宏定义参数,让GCC标准库跳过__float128相关代码的实例化:
"C_Cpp.clangTidy.args": [ "--extra-arg=-D_GLIBCXX_USE_FLOAT128=0", "--extra-arg-target=x86_64-w64-mingw32" ]
添加后重启VS Code,代码分析时就不会再触发该错误。
方法二:在CMake中配置Clang-Tidy参数
如果你的项目用CMake管理,直接在CMakeLists.txt中添加Clang-Tidy的参数配置:
if(CMAKE_CXX_CLANG_TIDY) list(APPEND CMAKE_CXX_CLANG_TIDY "-extra-arg=-D_GLIBCXX_USE_FLOAT128=0" "-extra-arg-target=x86_64-w64-mingw32" ) endif()
重新生成CMake缓存后,Clang-Tidy会自动应用这些参数。
方法三:直接忽略该诊断错误
如果不想修改编译宏,也可以直接让Clang-Tidy忽略这个错误类型:
"C_Cpp.clangTidy.args": [ "--disable-error=clang-diagnostic-error", "--extra-arg=-Wno-error=unsupported-feature" ]
不过这种方法只是屏蔽错误提示,不如前两种方法从根源解决问题。
内容的提问来源于stack exchange,提问作者www987
相关产品推荐
相关产品推荐

