fills a much-needed niche in the marketplace.
There are numerous books purporting to introduce the reader to C or C++. Some of these are actually introducing a specific compiler, indeed some have little if anything to do with learning to program and a great deal to do with a specific IDE. The reason that I mention this is because this book focuses on a set of compiler tools that are generally referred to as GCC. Unfortunately, despite the intentions of the author its title still manages a small amount of mis-direction. It is about a subset of GCC (GNU Compiler Collection) and only deals with using GCC for C and C++ source code.
Please note the use of the word 'Introduction' in the title; it is far from being a comprehensive manual even for the restricted C and C++ parts of GCC. For comprehensive coverage of GCC you will need an up-to-date version of Using GCC by Richard Stallman (published by GNU Press).
Now having warned you about the limited range of the book let me look at what it actually achieves. The book attempts to address the broad needs of newcomers to GCC incorporating the entire range of programming experience. In honesty, I think this is over ambitious and I would not suggest this book to the newcomer to programming, they have too much else to master and too much to learn about computer terminology to feel comfortable with a text at this level. For the rest, this book seems an excellent introduction. I have to say seems because I have had too many years dealing with the technology to be certain that what is clear to me will be equally clear to others.
If you can already program in either C or C++ and want to adopt GCC for compiling and linking your source code you have two major choices; you can use a command line environment or you can use some form of IDE. Even when using an IDE you may need to know details of the command line invocations if you need to tweak one or more scripts used by your IDE. You will also find that some details such as those concerning optimisation flags are useful even when using an IDE. While this book does not go into the level of detail that you will find in Using GCC, it does give more than enough details to get you on the right path.
As well as the basics required to use GCC as a command line compiler/linker for C and C++ the book includes a few very brief chapters on such things as platform specific options and how a compiler works. While the former can be useful I find the latter has a smell of stretching limited content to achieve a reasonable page count. Or perhaps the author genuinely thinks this book is appropriate to the raw novice. But if that were the case the language would have to be less technical and the text would need to go into greater detail.
The final criticism I have of this book is that the writing style is ugly. I come from the school of writing that advocates the use of simple English and advises against such things as the extensive use of the passive voice and the third person. Be warned that if you have a similar view you will be irritated by the author's writing style.
Despite my critical comments above I think this book fills a much-needed niche in the marketplace. Those who are less than expert users of GCC for C and C++ will find that having this book on your reference shelf is a cost effective alternative to having Using GCC to hand. However do not expect too much, it is only an introduction and serious users will probably need more detail.