
Amazon Prime Free Trial
FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with FREE Delivery" below the Add to Cart button and confirm your Prime free trial.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited FREE Prime delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the author
OK
Advanced C and C++ Compiling 1st ed. Edition
Purchase options and add-ons
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
Table of Contents
- 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
- The Linux Toolbox
- Linux HowTo's
- Windows Toolbox
- ISBN-101430266678
- ISBN-13978-1430266679
- Edition1st ed.
- Publication dateApril 28, 2014
- LanguageEnglish
- Dimensions7.52 x 0.77 x 9.25 inches
- Print length358 pages
Frequently bought together

Customers who viewed this item also viewed
Editorial Reviews
Review
INFORMS Journal of Computing
ISSN: 1526-5528
...The result is excellent, careful representation of the building process of dynamic libraries, which is always a cumbersome topic for many scientific programmers.
...
Overall, the book is an excellent reference book that could be very helpful for scientific programmers with no computer science background to create quality code.
From the Author
The engineers and/or scientists working on the frontiers of the new technologies have been the book's intended target audience from the beginning. The major idea was to provide the 'missing manual' for the world of compiling and linking to the folks whose minds (like mine) are focused on variety of their engineering/scientific disciplines, but whose tools of the trade inevitably walk them down the avenues of C/C++.
Based on the sales statistics (graph attached on my Amazon author's page) in which the geographic areas of the Silicon Valley and the NYC comprise the significant percentage of all US sales, it looks that that my expectations were met.
I hereby thank all the folks who have contacted me on advancedcandcppcompiling@gmail.com with the comments and ideas of how the book may be better. Needless to say, appreciate the many positive comments which came from the individuals of all kinds of engineering profiles.The book is widely perceived as the bridge between the everyday practice of the engineering world and a bit secretive domain of C/C++ compiling/linking. Being genuinely the person of the engineering world and the traveller through the world of compiling/linking, that's the most I've always hoped this book will accomplish.
Interestingly enough, a particular engineering team which I met through my consulting engagements which was the most vocal in the good recommendations features patent portfolio in the domain of digital media which outnumbers my years of age (which is not very small number).
Last but not least - the book has been translated to Chinese.
[End of comment]
The most frequently encountered remark about the book is that the title is a bit misleading, and I agree with that notion. The original book title "Engineering guide to C/C++ compiling, linking, and binary files structure" which IMHO would be more appropriate was not accepted by the publisher as the main title.
...and, yes...the book contains a number of minor errors, errata sheet will come once the busy schedule of computer professional allows it to happen (hopefully some time soon).
Please feel free to pass on the comments and suggestions to advancedcandcppcompiling@gmail.com
Product details
- Publisher : Apress; 1st ed. edition (April 28, 2014)
- Language : English
- Paperback : 358 pages
- ISBN-10 : 1430266678
- ISBN-13 : 978-1430266679
- Item Weight : 1.32 pounds
- Dimensions : 7.52 x 0.77 x 9.25 inches
- Best Sellers Rank: #1,216,603 in Books (See Top 100 in Books)
- #72 in Compiler Design
- #102 in Software Programming Compilers
- #1,403 in Software Development (Books)
- Customer Reviews:
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, WhatsApp), 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.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on September 23, 2015Being a member of my company's engineering team with the longest tenure, I've been recently given a hint by my company's management to
get prepared to take on the role of software architect/integrator. Never being comfortable dealing with compiler/linker issues I've started searching for anything that could help me to boost my knowledge.
My more experienced friends provided a few good initial tips. First, they mentioned "Linkers and Loaders". The Drepper article was their
second suggestion. Finally, they mentioned a fairly recent book written by a guy named after an Italian city ("Milan something").
Despite its obvious greatness, the "Linkers and Loaders" book wasn't tailored for my EE/telecom/software background. I simply lacked the
insight into many initial concepts. I've also read the Drepper article and kind of understood fair amount of it. The things that still bothered me were the looming lack of my hands-on experience and the lack of a good starting point.
Finally, I've got this book. Bingo!
It gave me exactly what I needed - the whole course starting with precise explanation of initial concepts, garnished with simple
code examples. The screen printouts helped me get an idea of what to expect as a result. Above all, the exquisite and sometimes funny
illustrations were powerful in explaining the concepts.
The book has several qualities rarely found elsewhere:
First, to the best of my knowledge, it is the only book that provides a 'black box' overview of the C/C++ building process. It does not go too
far into the depths of compiling/linking/loading, but all the explanations provide a good overview of the field.
Second, it is obviously written by a professional for the professionals.The author obviously knows how the engineering hands-on developers think.
He points out the most potent and the most operational details which once absorbed can keep you afloat at all times.
Third, it provides a huge amounts of relevant, hard-to-find information. Some of the chapters (e.g. duplicate symbols handling) are not found
elsewhere.
Finally, if for no other reason, the quick reference information in the last few chapters alone is worth having this book on the shelf.
A must have for any serious professional in the field!
- Reviewed in the United States on March 6, 2024This book was all over the map. It wasn't in depth in ways I wanted it, and provided a lot of information I didn't think belong. For example, it spends a lot of time discussing specific tools for multiple platforms (Unixes and Windows). This made this book feel more like a reference manual thank something you might want to read through. I could see some people benefiting from this approach. But I didn't like it.
- Reviewed in the United States on March 17, 2023A gold mine of technical information on compilers/linkers/loaders and how C/C++ affect them. Easily one of the best technical books in terms of content that I've read in probably 5 years.
Despite the great content and walkthroughs, it suffers from two main issues:
1. It's primarily Linux-specific, though a lot of the concepts apply to Windows.
2. There are a plethora of typographical errors. There are lots of missing spaces between words in tables, missing or extra articles (like "the"). Diagrams are readable but are sometimes fuzzy, probably due to being enlarged. However, I've only found one error effecting the technical content (".bas" instead of ".bss").
This book is still incredible and I would make it required reading for teams producing or consuming shared or static libraries. Already gotten my money's worth out of this book multiple times over.
A second edition of this book with the above issues addressed would likely become a long-lived classic.
- Reviewed in the United States on May 31, 2014This is not a computer science textbook. The material presented here is something that will be useful to real-life coders: people who build and use libraries with low level programming languages such as C and C++. If you ever got frustrated by the "undefined reference to" linker error on Linux, or its ugly cousin from Microsoft world "unresolved external symbol", this book will help you understand the magic behind construction and loading of binaries on the two popular platforms. Don't be afraid of reading some assembly language - you'll find the snippets all over the book, but they are very well explained and commented.
Most of the space in the book is spent on explaining the complex but very practical concepts related to the re-use of binaries. The last few chapters are down-to earth tutorials and tool descriptions that can be used as a reference long after you will have read the book.
- Reviewed in the United States on May 14, 2015Each program is destined to exist as a block of binary sequences. Source code is the blueprint intent but the block of binary is the result. Quality control over the results can only go so far from the point of view of the blueprint. Sometimes you have to take a look at the end result. This book teaches the background, ways, and whys of using various tools to confirm a few aspects of binary files to address version conflicts and loading of the correct Windows DLLs or Linux Shared Objects used by a program. The book is deep and long but it is all relevant and gives you the tools necessary to understand what happened when the compiler and linker took over and created the program. You also learn how to influence that process with greater certainty.
- Reviewed in the United States on August 17, 2017This book is concrete and to the point on subject of putting together, understanding and analysing "stuff" that you get after you compile your source code.
This is a book which will teach you methods of building building_blocks together. Analysing and understanding things produced after code gets compiled.
This is a book that would and will recommend after one learns how to write code.
- Reviewed in the United States on June 16, 2020reading internet on about compiling and linking is not enough, this book contains more detailed stuffs, should definitely read this, great and excellent ebook, thanks to the author
Top reviews from other countries
- Cliente AmazonReviewed in Spain on June 14, 2021
1.0 out of 5 stars A shame! Very good book but very poor printing quality
As per its contents It is a very very good book. I totally reccomend it.
However, the printing quality is disappointing. It is a shame that such a good book is printed this way. It is not worth spending more than 50 euros on a book printed this way. It is a shame because as I said the book is very good
- Miles P.Reviewed in Canada on June 3, 2014
5.0 out of 5 stars Awesome book
I've been waiting for the book on this topic for a very long time. The author said
it right - you can't be a master of C/C++ programming without handling the compiling
and linking issues with ease, and also - there is surprisingly little information
on this topic solidified in the form of a single book.
The way how it is written is amazing. Don't remember when it was the last time
when I went through the technical book with such an ease. The author just knows
how to tell the things in the most effective way. The flow of thoughts and pace of exposing the important facts is perfect, written by a technical mind for the technical
minds.
Plenty of carefully tailored yet perfectly simple examples guide you right through the topics. All you need is working OS with the platform-specific compiler (Ubuntu on VMWare Fusion in my case with gcc/g++ installed) and a little time to go through the
examples. Before you know it, you find yourself navigating your way through the stuff
of which you previously had very limited or no knowledge whatsoever.
The collections of recipes (last 2-3 chapters/HowTo's section) where some of the rarely found tips are exposed is simply brilliant and worth every penny.
This book definitely found its place in my collection of books to take to a desert island.