The GNU Tool Primer
3.3 (2 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
11 students enrolled
Wishlisted Wishlist

Please confirm that you want to add The GNU Tool Primer to your Wishlist.

Add to Wishlist

The GNU Tool Primer

Creating Makefiles, Applications, and Libraries using the GNU Tool Set
3.3 (2 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
11 students enrolled
Created by Randall Nagy
Last updated 4/2017
Current price: $10 Original price: $20 Discount: 50% off
30-Day Money-Back Guarantee
  • 1 hour on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand how to use GNU `make` to manage common software development activities.
  • Learn the "critical path" options most frequently required to build C++ applications.
  • Use GNU's `dbg` and `xxgdb` tools to perform stack-based debugging.
  • Create libraries designed to be used between multiple C++ applications.
  • Understand the difference between static & dynamic library types.
  • Discover how GNU's `make` uses rules, dependancies, recipes, and macros to create software.
  • Learn how to include, inspect, and remove source code from your debugging sessions.
View Curriculum
  • Students must be able to start & exit a "command line" or "console" user interface.
  • Students should be able to run GNU's `make` from a `bash` shell.
  • GNU's C++ Tool Set must also be installed.
  • (OPTIONAL) Graphical debugging will require the installation of `xxgdb`.

No matter if we are creating new software or building legacy applications, understanding how to leverage GNU's classic tool-set to manage content creation activities is a highly sought-after skill set.

The de-facto standard in building everything from operating systems to millions of Open-Source Projects, these lessons begin by reviewing how to both create, as well as to use `Makefiles.`

Demonstrating how to compile, link & test a basic C++ program, the training will also cover the most common set of g++ / c++ operations. Students will create a C++ application, related Makefile, as well as library. GNU's basic compiler, linker, and program-creation process, artifacts, and naming conventions will be reviewed.

Because GNU's debugger is important to understand, the operation of both gdb, as well as the graphical xxgdb tools will be explored. Demonstrating how to both include, as well as remove, source code & symbols from your application is also presented.

Finally, students will also learn what `name mangling` is, as well as how to use GNU's tool-set to decipher "decorated" classes and function names.

Who is the target audience?
  • Students interested in learning how to make, debug, and test C/C++ libraries & programs.
  • Students interested in learning how to create C/C++ programs & libraries using the GNU compiler tool set.
Curriculum For This Course
New To GNU
11 Lectures 58:18

Enjoy an overview of what will be covered in this presentation.

Preview 02:30

Complete an introductory "Make" activity that requires no C/C++ programming.

Discover what GNU is, as well how to run GNU's tools on Window, Linux, and OS X. Learn what `make` is, as well as the key artifacts required & naming conventions required. Understand how to write a basic makefile "rule," how rules operate, as well as what a programmer's "delta" is.

Preview 08:18

Create a simple C++ console application designed to be managed & built by another Makefile activity.

Understand how to create a Makefile macro, as well as why using macros can save allot of time.

Making C++

Review how the GNU c++ / g++ compilation process operates. Compile and link an executable program. Learn how to rename the default `a.out` compiler result so as to create more meaningful program names.

The Program Compilation Process

Discover the difference between external & internal programs. Review the operation of command "shells," as well as how to use basic `bash` operations to combine command-line operations. Learn how to execute alternative commands based upon previous command success or failure. Discover how to update a Makefile so as to create a test case that can terminate any `make` process.

Basic System Signals & Make Integration

Review the most common set of command-line options used to manage the creation of C++ applications. Understand the peculiar library-naming conventions used to link GNU libraries into our applications. Discover how to enable and / or remove warnings., as well as the common macros often used to manage the C/C++ software creation process.

More C++ Options

Review how to add classic line-logging to any operating environment. Learn how to make the "era Namespace," as well as how to create specific targets by using command-line targets. Review the most common "best practice" targets, as well as how to clean-up after Makefile activities.

Library Creation & Management

Download, make, & review the operation of an Open Source project. Learn how to build specific targets, as well as how to clean and otherwise manage test applications and libraries.

Preview 05:55

Review how xxgdb allows us to review the most common debugging operations. (GNU's graphical xxgdb debugging tool does not have to be installed.)

Graphical GNU Debugging

Apply what we have learned while reviewing an actual gdb console debugging session. See how to set & remove breakpoints, temporary breakpoints, inspect variables, step over "stack frames," as well as return to a calling context.

Update the Makefile so as to add debugging symbols. Discover how start a debugging session, inspect stack frames, as well as how to manage an "inferior session." 

Learn how to strip source code / symbols after debugging has been completed.

GNU Console Debugging

For further study, discover an inspiring set of additional command line features, built-in macros, as well as more resources available around the Internet.

Handy Options & Resources
About the Instructor
Randall Nagy
3.8 Average rating
168 Reviews
9,655 Students
14 Courses
Consulting Engineer & Educator

I've over 30 years of experience.

"Mr. Nagy presently earns his keep in the world by providing technology mentoring, training, hands-on consulting / software development, & customized content creation services.

Mr. Nagy has served as both a Principal Trainer & Principal Software Development Engineer. His "Linked In" recommendations testify to a 30+ year track record of excellent personal communication skills, design & analysis abilities, as well as superior consulting & training results.

Though tenured, Mr. Nagy is most often described as being extremely technical, yet very personable & easy to get along with.

The author of over 26 Open-Source Projects, Mr. Nagy's hands-on experience includes topics such as C/C++, Python, SO / SOA, Security, Testing, UML, Java/JEE, .NET (C# and VB.NET), LAMP, Hadoop, jQuery, HTML 5, Android, and more. Maintaining techniques in embedded engineering, Mr. Nagy has experience creating custom training for such expert-level, high-performance technologies as IBM Rhapsody.

Technically speaking, "... from the best Service-Oriented practices to embedded engineering, I maintain an extensive hands-on skill set. From Java and C/ C++, C#, PHP, Python, Ruby, HTML 5 and Web 2.0, I have both designed and implemented architectures from the UI / RIA to the server, well into the RFC Layer. …

I also have over 150 successful training / mentoring, publication, and speaking engagements to my credit. Recent experience includes such state-of-the art technologies as Hadoop, Android, WSO2, and TFS."