Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Справочная информация




Компилятор GCC

БАЗОВЫЕ ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА Linux

gcc - это свободно доступный оптимизирующий компилятор для языков C, C++, Ada 95, а также Objective C. Его версии применяются для различных реализаций Unix (а также VMS, OS/2 и других систем PC), и позволяют генерировать код для множества процессоров.

gcc можно использовать и для компиляции программ в объектные модули, и для компоновки полученных модулей в единую исполняемую программу. Компилятор способен анализировать имена файлов, передаваемые ему в качестве аргументов, и определять, какие действия необходимо выполнить. Файлы с именами типа name.cc (или name.C) рассматриваются, как файлы на языке C++, а файлы вида name.o считаются объектными (т.е. внутримашинным представлением).

Чтобы (только) откомпилировать исходный код C, находящийся в файле F, и создать объектный файл F.o, следует выполнить команду:

gcc -c F

Чтобы скомпоновать один или несколько объектных файлов, полученных из исходного кода C - F1.o, F2.o,... ‑ в единый исполняемый файл F, следует использовать команду:

gcc -o F F1.o F2.o... <other-libraries>

Здесь строка other-libraries - означает подключение при компоновке дополнительных разделяемых библиотек.

Можно совместить два этапа обработки ‑ компиляцию и компоновку ‑ в один общий этап с помощью команды:

gcc -o F F1.cc... -lg++ <other-libraries>

После компоновки будет создан исполняемый файл F, который можно запустить с помощью команды:

./F <arguments>,

где строка arguments определяет аргументы командной строки программы F.

Заголовочные файлы, используемые gcc компилятором, находятся в директории /usr/include/g++, а библиотеки расположены в /usr/lib. Сам компилятор по умолчанию устанавливается в директорию /usr/bin.

 

Среди множества опций компиляции и компоновки наиболее часто употребляются следующие:

-c

Только компиляция. Из исходных файлов программы создаются объектные файлы в виде name.o. Компоновка не производится.

-Dname=value

Определить имя name в компилируемой программе как значение value. Эффект такой же, как наличие строки

#define name value

в начале программы. Часть `=value' может быть опущена, в этом случае значение по умолчанию равно 1.

-o file-name

Использовать file-name в качестве имени для создаваемого gcc файла (обычно это исполняемый файл).

-llibrary-name

Использовать при компоновке указанную библиотеку.

-g

Поместить в объектный или исполняемый файл отладочную информацию для отладчика gdb. Опция должна быть указана и для компиляции, и для компоновки.

-MM

Вывести заголовочные файлы (но не стандартные заголовочные), используемые в каждом исходном файле, в формате, подходящем для утилиты make. Не создавать объектные или исполняемые файлы.

-pg

Поместить в объектный или исполняемый файл инструкции профилирования для генерации информации, используемой утилитой gprof. Опция должна быть указана и для компиляции, и для компоновки. Профилирование - это процесс измерения продолжительности выполнения отдельных участков вашей программы. Когда вы указываете -pg, полученная исполняемая программа при запуске генерирует файл статистики. Программа gprof на основе этого файла создает расшифровку, указывающую время, затраченное на выполнение каждой функции.

-Wall

Вывод сообщений о всех предупреждениях или ошибках, возникающих во время трансляции программы.

-O1

Устанавливает оптимизацию уровня 1. Оптимизированная трансляции требует несколько больше времени и несколько больше памяти для больших функций. Без указания опций `-O' цель компилятора состоит в том, чтобы уменьшить стоимость трансляции и выдать ожидаемые результаты при отладке. Операторы независимы: если вы останавливаете программу на контрольной точке между операторами, то можете назначить новое значение любой переменной или поставить счетчик команд на любой другой оператор в функции и получить точно такие результаты, которые вы ожидали от исходного текста. С указанием `-O' компилятор пробует уменьшить размер кода и время исполнения.

-O2

Устанавливает оптимизацию уровня 2. GNU CC выполняет почти все поддерживаемые оптимизации, которые не включают уменьшение времени исполнения за счет увеличения длины кода. Компилятор не выполняет раскрутку циклов или подстановку функций, когда вы указываете `-O2'. По сравнения с `-O' эта опция увеличивает как время компиляции, так и эффективность сгенерированного кода.

-O3

Устанавливает оптимизацию уровня 3. `-O3' включает все оптимизации, определяемые `-O2', а также включает опцию `inline-functions'.

-O0

Без оптимизации. Если вы используете многочисленные `-O' опции с номерами или без номеров уровня, действительной является последняя такая опция.




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 388; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.