x
Loading
 Loading
Hello, Guest | Login | Register

Compiling and Linking: Under the Hood

These days, interpretive languages, most notably Perl, JavaScript, and Python, have made the barriers to entry for newly-aspiring programmers a lot lower than they once were. Perl, in particular, makes it easy for a newcomer to get his or her feet wet and leave the deeper mysteries that make for industrial-strength, high-performance software for later on. Languages such as C and C++ that typically get compiled all of the way down to real machine code are a different story, however. These languages, designed by professional software engineers for professional software engineers, generally assume that you, the programmer, are able to get down to the gritty details (and often idiosyncratic quirks) of the underlying hardware and the software development tool set you will be using.

These days, interpretive languages, most notably Perl, JavaScript, and Python, have made the barriers to entry for newly-aspiring programmers a lot lower than they once were. Perl, in particular, makes it easy for a newcomer to get his or her feet wet and leave the deeper mysteries that make for industrial-strength, high-performance software for later on. Languages such as C and C++ that typically get compiled all of the way down to real machine code are a different story, however. These languages, designed by professional software engineers for professional software engineers, generally assume that you, the programmer, are able to get down to the gritty details (and often idiosyncratic quirks) of the underlying hardware and the software development tool set you will be using.

This is where lots of people throw in the towel, because they have neither the time nor the patience for this grotesque exercise, especially the often thinly-documented basics of C and C++ software development tool sets.

The GNU Toolchain

Those who have been mystified by the reasonably well-hidden wheels and pulleys that lurk behind that deceptively simple gcc foo.c command should read on.

Compile Time Figure 1
Figure One: The GNU software development toolchain.

Figure One shows the flow through the GNU software development toolchain. Starting on the…

Please log in to view this content.

Not Yet a Member?

Register with LinuxMagazine.com and get free access to the entire archive, including:

  • Hands-on Content
  • White Papers
  • Community Features
  • And more.
Already a Member?
Log in!
Username

Password

Remember me

Forgotten your password?
Forgotten your username?
Read More
  1. Helpful Tools for Software Developers
  2. The Github Hall of Fame
  3. Book'em, Github.
  4. This Week on Github: Stupid Ruby Tricks
  5. A Veritable Scatter Shot!
Follow Linux Magazine
Rackspace