Your ldconfig (the linker, and everything in its environment…basically a complete user space operating system) has to exist and be arm64/aarch64, not desktop PC format. I’m guessing that if you use “file /sbin/ldconfig.real” it’ll say something other than a 64-bit ARM. All of those files for linking and for libraries are known as the “sysroot”, and you need everything that a program might (A) link to, or (B) use to perform linking to be present in native (to the emulated environment) architecture. Tools themselves are cross-arch, and run on a PC, but output and understand 64-bit ARM, so those are not an issue. Emulators do not install everything though because that would imply installing not just one full operating system, but every library and every option possible on every flavor and version of Linux.
If you have a Jetson set up already with everything you need, and you clone the rootfs, then you can loopback mount the raw clone and name this as the sysroot. You’d have exactly everything available that the Jetson has, and in the exact release version as on the Jetson (hint: update before clone, and add any dev packages even if you are not developing directly on the Jetson).