===== Overview ===== "21st Century C" nuggets. * LLVM ===== STUFF ===== ==== Packages ==== * gcc/clang * gdb (others?), lldb * valgrind * gprof * make * autotools versus meson * pkg-config * lint/splint * meld(?) * vagrant/libvirt ==== Look into ==== * designated initializers * ''_Thread_local'' and, in general, thread-safe code * ''assert'', ''static_assert'' * static analyzers * specific development libraries * GNU extensions * OpenMP * atomic variables * gcov * linking (dlopen/dlsym) ===== Compilation workflow ===== * install 3rd party libraries * specify compiler and library search options (-I, -L) * select build system ===== Various links ===== * [[https://eklitzke.org/an-introduction-to-valgrind-memcheck|An Introduction to Valgrind Memcheck]]