#LyX 1.4.3 created this file. For more info see http://www.lyx.org/ \lyxformat 245 \begin_document \begin_header \textclass article \begin_preamble \usepackage{ragged2e} \RaggedRight \setlength{\parindent}{1 em} \end_preamble \language english \inputencoding auto \fontscheme times \graphics default \paperfontsize 12 \spacing single \papersize default \use_geometry true \use_amsmath 1 \cite_engine basic \use_bibtopic false \paperorientation portrait \leftmargin 1in \topmargin 1in \rightmargin 1in \bottommargin 1in \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \defskip medskip \quotes_language english \papercolumns 1 \papersides 1 \paperpagestyle default \tracking_changes false \output_changes true \end_header \begin_body \begin_layout Standard \begin_inset Quotes eld \end_inset Terminology for C programming \begin_inset Quotes erd \end_inset \end_layout \begin_layout Standard Paul Johnson Feb. 8, 2007 \end_layout \begin_layout Description GNU An organization that creates and advocates for \begin_inset Quotes eld \end_inset free software \begin_inset Quotes erd \end_inset \end_layout \begin_layout Description gcc The GNU C Compiler, AKA GNU Compiler Collection. A \begin_inset Quotes eld \end_inset compiler \begin_inset Quotes erd \end_inset is a program that makes programs. \end_layout \begin_deeper \begin_layout Quote Example: \begin_inset Quotes eld \end_inset gcc -o whatever MyFile.c \begin_inset Quotes erd \end_inset will create an executable \begin_inset Quotes eld \end_inset ./whatever \begin_inset Quotes erd \end_inset from a file MyFile.c \end_layout \begin_layout Standard Sometimes gcc commands become very complicated because it allows may options. See the output from \begin_inset Quotes eld \end_inset gcc --help \begin_inset Quotes erd \end_inset \end_layout \end_deeper \begin_layout Description why\InsetSpace ~ the\InsetSpace ~ ./ The current working directory is not, by default, in the \begin_inset Quotes eld \end_inset PATH \begin_inset Quotes erd \end_inset . The dot-slash symbol means \begin_inset Quotes eld \end_inset look for an executable in the current working directory \begin_inset Quotes erd \end_inset \end_layout \begin_layout Description binary A nontext file. You can't edit these with a \begin_inset Quotes eld \end_inset flat text \begin_inset Quotes erd \end_inset editor like Emacs, and generally doing so would destroy them. \end_layout \begin_layout Description object\InsetSpace ~ file\InsetSpace ~ (*.o) When gcc runs, it converts each file that contains C code into an object file, a binary thing in \begin_inset Quotes eld \end_inset machine code. After that, the \begin_inset Quotes eld \end_inset linking \begin_inset Quotes erd \end_inset process ties those \begin_inset Quotes eld \end_inset o \begin_inset Quotes erd \end_inset files together into an executable. \end_layout \begin_layout Description make A program that reads a \begin_inset Quotes eld \end_inset Makefile \begin_inset Quotes erd \end_inset and tells gcc how to compile a program, i.e., what options are required. \end_layout \begin_layout Description library A pre-existing \begin_inset Quotes eld \end_inset thing \begin_inset Quotes erd \end_inset containing routines and variables that programs can use. \end_layout \begin_layout Description so\InsetSpace ~ file\InsetSpace ~ (*.so) A \begin_inset Quotes eld \end_inset shared object \begin_inset Quotes erd \end_inset file. In Linux/Unix, library components are generally built into \begin_inset Quotes eld \end_inset so \begin_inset Quotes erd \end_inset files. The compiler can \begin_inset Quotes eld \end_inset link in \begin_inset Quotes erd \end_inset these objects with your program. An \begin_inset Quotes eld \end_inset so \begin_inset Quotes erd \end_inset file is generally accessed at \begin_inset Quotes eld \end_inset run time \begin_inset Quotes erd \end_inset . In other words, the contents of the \begin_inset Quotes eld \end_inset so \begin_inset Quotes erd \end_inset file are not gobbled into your program when you compile it. In MS Windows, the equivalent is a DLL file (dynamic link library). \end_layout \begin_layout Description a\InsetSpace ~ file\InsetSpace ~ (*.a) A library that cannot be loaded at runtime. The compiler has to translate the contents of this library into your program \begin_inset Quotes eld \end_inset statically \begin_inset Quotes erd \end_inset . A statically linked program is bigger, but may run faster. Originally, all C programs were \begin_inset Quotes eld \end_inset statically linked \begin_inset Quotes erd \end_inset in this way, and the drain on system resources prompted the push for the use of shared object libraries. \end_layout \begin_layout Description header\InsetSpace ~ file\InsetSpace ~ (*.h) A file that lists the variables and functions available from a library. Almost always, the available header files are found in the filesystem under /usr/include. A program must declare that it intends to use elements from a library by including a reference to the header file. \end_layout \end_body \end_document