关于windows下 VScode clangd无法补全c++ GCC编译器中__builtin_popcount这类函数

问题遇到的现象和发生背景

clangd无法补全c++ GCC内置函数 __builtin_popcount 这类

操作环境、软件版本等信息

windows10
直接在windows下安装,没有虚拟机和ubuntu等
编译器来自https://winlibs.com/
clangd来自https://github.com/clangd/clangd/releases
使用c++写代码

尝试过的解决方法

使用过添加这些参数在设置中

"clangd.arguments": [
    "--gcc-toolchain=D:/mingw64",
    "-target", "x86_64-pc-windows-gnu",
    "-isystem", "D:/mingw64/lib/gcc/x86_64-w64-mingw32/12.2.0/include",
    "-isystem", "D:/mingw64/x86_64-w64-mingw32/include",
    "--background-index",
    "--header-insertion=never",
    "--suggest-missing-includes",
    "--completion-style=detailed",
    "--cross-file-rename",
    "--fallback-style=Microsoft",
    "--suggest-missing-includes",
    "--suggest-missing-methods"
]
全部没有用
我想要达到的结果

使得clangd能够补全微软插件c/c++能补全的所有函数,因为c/c++可以补全__builtin_popcount这类函数

参考GPT和自己的思路:针对你的问题,可以尝试以下几个解决方法:

  1. 检查GCC编译器版本是否支持__builtin_popcount函数。在使用GCC编译器时,__builtin_popcount 是存在的,并且完全没有问题的。请确保你使用的编译器版本不低于GCC 5.0。

  2. 确认在VScode中的include路径是否正确。如果include路径不正确,那么补全时就无法找到__builtin_popcount这个函数,你应该在设置中添加正确的include路径。

  3. 确认在VScode中的c++标准是否正确。在VScode的设置中,检查c++标准是否设置为正确的版本。请设置为c++11/c++14/c++17/c++20这些标准之一。

希望以上方法能够解决你的问题。如果还不行,那就需要另外寻找或尝试其他解决方法了。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/1084989
  • 这篇博客你也可以参考下:gcc 内联函数编译报错
  • 这篇博客也不错, 你可以看下gcc 内联函数编译报错
  • 除此之外, 这篇博客: windows上使用clang编译程序中的 windows上使用clang编译程序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    环境:windows10,64位

    1. 下载并安装llvm,安装包里除了llvm,也有clang:

    http://releases.llvm.org/5.0.0/LLVM-5.0.0-win64.exe

    1. 下载并安装mingw:

    https://sourceforge.net/projects/mingw-w64/

    安装时选择CPU架构为 x86_64

    把安装路径添加到path中:

    C:\Program Files\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev2\mingw64\bin

    1. 打开命令行窗口,开始编译程序:
      clang --target=x86_64-pc-mingw64 hello.c -o hello.exe

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^