Advanced C and C++ Compiling
- 4h 19m
- Milan Stevanovic
- Apress
- 2014
Learning how to write C/C++ code is only the first step. To be a serious programmer, you need to understand the structure and purpose of the binary files produced by the compiler: object files, static libraries, shared libraries, and, of course, executables.
Advanced C and C++ Compiling explains the build process in detail and shows how to integrate code from other developers in the form of deployed libraries as well as how to resolve issues and potential mismatches between your own and external code trees.
With the proliferation of open source, understanding these issues is increasingly the responsibility of the individual programmer. Advanced C and C++ Compiling brings all of the information needed to move from intermediate to expert programmer together in one place -- an engineering guide on the topic of C/C++ binaries to help you get the most accurate and pertinent information in the quickest possible time.
What you'll learn
- The details of the build process, including compiling and linking
- The inner workings of static libraries, shared libraries, and executables
- Ways to properly architect code for smooth integration of future changes
- Tips for troubleshooting problems with compiling and linking as well as run-time problems
- How to use operating system-specific (Linux and Windows) tools for analysis of binary files
Who this book is for
C/C++ software designers aspiring to senior levels, software architects, build engineers, and Linux system administrators.
About the Author
Milan Stevanovic ì is a senior multimedia software consultant based in the San Francisco Bay Area.
The span of his engineering experience covers a multitude of disciplines, ranging from the board level analog and digital hardware design, and assembly programming, all the way to C/C++ design and software architecture. His professional focus has been in the domain of the analysis of a variety of compressed multimedia formats, and design related to a variety of multimedia frameworks (GStreamer, DirectX, OpenMAX, ffmpeg) in Linux (desktop, embedded, Android native) as well as in Windows.
He has designed multimedia software for numerous companies (C-Cube, Philips, Harman, Thomson, Gracenote, Palm, Logitech, Panasonic, Netflix), creating a variety of cutting edge technology products (ZiVA-1 and ZiVA-3 DVD decoder chip, Philips TriMedia media processor, Palm Treo and Palm Pre mobile phones, Netflix application for Android).
He is an original member of the developer duo (together with David Ronca) that created the avxsynth open source project (the first successful port of avisynth to Linux).
He holds a MSEE degree from Purdue University (1994) and an undergraduate degree in EE (1987) and Music - flute performance (1990) from the University of Belgrade.
In this Book
-
Multitasking OS Basics
-
Simple Program Lifetime Stages
-
Program Execution Stages
-
The Impact of Reusing Concept
-
Working with Static Libraries
-
Designing Dynamic Libraries: Basics
-
Locating the Libraries
-
Designing Dynamic Libraries: Advanced Topics
-
Handling Duplicate Symbols when Linking in Dynamic Libraries
-
Dynamic Libraries Versioning
-
Dynamic Libraries: Miscellaneous Topics
-
Linux Toolbox
-
Linux How To's
-
Windows Toolbox