How symbols work and why we need them - Anders Schau Knatten - NDC TechTown 2023
HTML-код
- Опубликовано: 17 ноя 2024
- This talk was recorded at NDC Techtown in Kongsberg, Norway. #ndctechtown #ndcconferences #cplusplus #clanguage #softwaredeveloper
Attend the next NDC conference near you:
ndcconferences...
ndctechtown.com/
Subscribe to our RUclips channel and learn every day:
/@NDC
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