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 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 Who this book is for C/C++ software designers aspiring to senior levels, software architects, build engineers, and Linux system administrators. Table of Contents
Really strong introduction with a good explanation on the compiling and linking stages of software creation. The latter 2/3s fell flat for me, though, as it mostly talked about libraries, dynamic and static, and Linux tools, which I won't be using at this stage of my career.
At times this book was interesting. I learned some things that I set out to learn when I started the book. Overall, at the beginning of the book, I found the sentence composition hard to follow. I might have gotten used to the writing style by the middle, and it was slightly easier to comprehend. I also struggled with some of the words being slightly misplaced as English may not have been the author's first language. Still, I am glad I read it, and once again, I did learn something.
It was ok. The title is misleading. The book is almost exclusively linkers and loaders. There's nearly no mention of compilers or methods used by them other than a cursory overview of what a compiler is for. LLVM and CLang aren't even mentioned. Good info on the stuff it does go over though.