Cross-Compilation & Toolchains
Build software for a target architecture on your host machine. Master the GNU toolchain, sysroots, linking strategies, QEMU emulation, and ELF binary analysis.
GNU Toolchain
Components of a cross-toolchain (binutils, gcc, glibc), naming conventions, ABI differences, and building with Crosstool-NG.
Sysroot & Libraries
What a sysroot is, creating one from a target board, fixing symlinks, and configuring pkg-config for cross-compilation.
Static vs Dynamic Linking
Comparing linking strategies, RPATH, LD_LIBRARY_PATH, soname versioning, PIC, and deploying shared libraries to embedded targets.
QEMU Emulation
System vs user-mode emulation, running cross-compiled binaries on x86, TAP/TUN networking, and GDB remote debugging with QEMU.
readelf / objdump / nm
Inspect ELF headers, disassemble code, list symbols, convert binary formats, and diagnose linking and architecture issues.
Cross-Compiling with CMake
CMake toolchain files, CMAKE_SYSROOT, find_package for cross targets, pkg-config integration, and Yocto SDK with CMake.