Clangd

TL;DR: In order to get clangd to run on Ubuntu 24.04 (or, in my case PopOS), g++-14-dev (and more precisely, its dependency libstdc++-14-dev) needs to be installed.

When the C++ compiler is g++, there is an irritating interaction between CMake, clangd, and bear, where clangd may not be able to see libstdc++ header files. One of these tools (bear, I think... although possibly CMake) hardcodes paths to header files. Even though g++ can find headers, clangd won't be able to. To fix this, find a file on which clangd complains about opening files, and run:

clangd --check=path/to/file.cpp

This will dump out a bunch of output, one item of which will be the list of options being passed to g++. In these, there should be an option like -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14. The 14 there is the libstdc++ version. For this, I had to install libstdc++-14-dev to get the appropriate header files. I imagine in the future, this number will increase.

Future Oliver, or random internet person struggling to find a solution, you're welcome.