site/src/platforms/linux.md
Preload is the default interception method on Linux (see how Bear
works for the mechanism, and
Configure Bear for the
setting). It cannot see into a statically linked build tool; force
intercept.mode: wrapper
instead.
If .wslconfig sets networkingMode=mirrored, the loopback connection
intercepted processes use to report back to bear-driver breaks,
producing an empty or short compile_commands.json with no other
error. Remove the setting and restart WSL2 (wsl --shutdown).
Bear must run inside the container, as part of the build it observes;
bear -- docker exec ... from the host does not work. See Run Bear
inside a Docker container.
INTERCEPT_LIBDIR=lib64 cargo build --release
INTERCEPT_LIBDIR=lib64 ./scripts/install.sh
A mismatch here fails silently: preload never loads and the database comes out empty or short. See Installing Bear for why.
Related: Troubleshooting for output that comes out wrong, and the Recipes index for other tasks.