Программирование для Linux. Профессиональный подход | страница 8
Чтобы включить режим цветовых выделений, откройте файл >~/.emacs
и вставьте в него такую строку:
>(global-font-lock-mode t)
Сохраните файл, выйдите из Emacs и перезапустите редактор. Теперь можете открыть нужный исходный файл и наслаждаться!
Внимательные читатели, возможно, обратили внимание на то, что строка, вставленная в файл >.emacs
, выглядит написанной на языке LISP. Это и есть LISP! Большая часть редактора Emacs реализована именно на этом языке. На нем же можно писать расширения к редактору.
1.2. Компиляторы GCC
Компилятор превращает исходный текст программы, понятный человеку, в объектный код. исполняемый компьютером. Компиляторы, доступные в Linux-системах, являются честью коллекции GNU-компиляторов, известной как GCC (GNU Compiler Collection).[4] В нее входят компиляторы языков С, C++, Java, Objective-C, Fortran и Chill. В этой книге нас будут интересовать лишь первые два.
Предположим, имеется проект, в который входят два исходных файла: один написан на С (>main.c
; листинг 1.1), а другой — на C++ (>reciprocal.cpp
; листинг 1.2). После компиляции оба файла компонуются вместе, образуя программу >reciprocal
,[5] которая вычисляет обратное заданного целого числа.
>#include
>#include "reciprocal.hpp"
>int main(int argc, char **argv) {
> int i;
> i = atoi(argv[1]);
> printf("The reciprocal of %d is %g\n", i, reciprocal(i));
> return 0;
>}
>#include
>#include "reciprocal.hpp"
>double reciprocal (int i) {
> // Аргумент не должен быть равен нулю
> assert(i != 0);
> return 1.0/i;
>}
Есть также файл заголовков, который называется >reciprocal.hpp
(листинг 1.3).
>#ifdef __cplusplus
>extern "С" {
>#endif
>extern double reciprocal(int i);
>#ifdef __cplusplus
>}
>#endif
Первый шаг заключается в превращении исходных файлов в объектный код.
1.2.1. Компиляция одного исходного файла
Компилятор языка С называется >gcc
. При компиляции исходного файла нужно указывать опцию >-с
. Вот как, например, в режиме командной строки компилируется файл >main.с
:
>% gcc -с main.с
Полученный объектный файл будет называться >main.o
.
Компилятор языка C++ называется >g++
. Он работает почти так же, как и >gcc
. Следующая команда предназначена для компиляции файла >reciprocal.cpp
:
>% g++ -c reciprocal.cpp
Опция >-с
говорит компилятору о необходимости получить на выходе объектный файл (он будет называться