How Linux Elf Symbols Work and How They Are Used in C++ and C Programming - Anders Schau Knatten
https://cpponsea.uk --- How Linux Elf Symbols Work and How They Are Used in C++ and C Programming - Anders Schau Knatten - C++ on Sea 2024 --- Knowing how symbols work and how they are used can be very useful. Not only when solving linker errors but also when consuming or creating libraries, and even when creating executables. But most importantly, it is interesting to know how your binaries work! The talk covers Linux and its ELF symbols in particular, but Windows has some similar concepts. It applies to both C and C++. In this talk, I'll go over What symbols are, and why do we need them Why your program has three different symbol tables The difference between binding and visibility and how C/C++ linkage relates to the two Where symbols are stored and how to view them Global, local, weak, and unique symbols Allowing users to override your functions/globals How the linker handles C++ templates and inline variables Which entities need symbols and which don't Symbol tables used in static and dynamic linking Default vs hidden visibility and a useful idiom to work with these --- Slides: https://github.com/philsquared/cppons... Sponsored by Bloomberg: https://www.bloomberg.com/company/val... Sponsored By think-cell: https://www.think-cell.com/cpponsea --- Anders Schau Knatten Anders started programming in Turbo Pascal in 1995, and has been programming professionally in various languages since 2001. He's currently a principal engineer at Ascenium in Oslo, working on a new CPU design. He's also the author of the book C++ Brain Teasers, CppQuiz.org and the blog C++ on a Friday. --- C++ on Sea is the international C++ conference taking place by the sea, in the UK. Our venue is in Folkestone, Kent, near the entrance to the channel tunnel with stunning views across the English Channel. Annual C++ On Sea Conference - https://www.cpponsea.uk / cpponsea https://x.com/cpponsea https://www.facebook.com/profile.php?... / cpponsea https://vmst.io/@cpponsea --- YouTube Videos Filmed, Edited & Optimised by Digital Medium: https://events.digital-medium.co.uk --- #cpp #cplusplus #linux #cprogramming #cpponsea

Keynote: Not Getting Lost in Translations in C++ Software Development - Daniela Engert - C++ on Sea

Common Pitfalls of Rewriting Things In Rust (Cliff L. Biffle at RustWeek)

What Happens After The Compiler in C++ (How Linking Works) - Anders Schau Knatten - C++ on Sea 2023

Co-Creator of Haskell: Useless vs Useful Languages, Rust vs C, Functional Programming | Simon Jones

Understanding File Descriptors in Unix/Linux

Three Cool Things in C++26: Safety, Reflection & std::execution - Herb Sutter - C++ on Sea 2025

How to Actually Learn C (2027 Edition)

Concept-based Generic Programming - Bjarne Stroustrup - CppCon 2025

Tips for C Programming

*(char*)0 = 0; - What Does the C++ Programmer Intend With This Code? - JF Bastien - C++ on Sea 2023

How do linkers resolve symbols? Systems Programming CS Lecture

Linkers, Loaders and Shared Libraries in Windows, Linux, and C++ - Ofek Shilon - CppCon 2023

Ziglibc: Sweeping out the rug from underneath C - Jonathan Marler - Software You Can Love 2022

What Every Programmer Should Know about How CPUs Work • Matt Godbolt • GOTO 2024

CppCon 2014: Mike Acton "Data-Oriented Design and C++"

Steven Rostedt - Learning the Linux Kernel with tracing

Anders Schau Knatten: lvalues, rvalues, glvalues, prvalues, xvalues, help!

CppCon 2019: Chandler Carruth “There Are No Zero-cost Abstractions”

Functional Programming in 40 Minutes • Russ Olsen • GOTO 2024

