АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Двоичные форматы ELF и a.out

Читайте также:
  1. Блочные двоичные коды
  2. Основные типы и форматы данных.
  3. Поддерживаемые форматы файлов
  4. Сетевые графические форматы
  5. Форматы
  6. Форматы бумаги ANSI
  7. Форматы команд
  8. Форматы чертежей, основная надпись
  9. Форматы.

Существуют два формата, которые могут использоваться при создании двоичных файлов (например, файлов исполняемых программ). Первый из них именуется a.out. Этот формат является исходным форматом, используемым для систем UNIX и первых версий Linux. Название формата в данном случае происходит от стандартного имени исполняемого файла, создаваемого компилятором С системы UNIX. Но в связи с ши­роким применением совместно используемых библиотек возникли трудности с форма­том a.out. Адаптация формата a.out с целью применения совместно используемых биб­лиотек является весьма сложной процедурой. Поэтому, начиная с четвертой версии UNIX System 5 и операционной системы Solaris, был предложен новый формат. Он получил название ELF (Executable and Linking Format — формат компоновки и испол­нения). Целью разработки этого формата было упрощение работы с совместно исполь­зуемыми библиотеками.

Формат ELF был адаптирован с целью применения в качестве стандартного формата Linux. Все двоичные файлы, создаваемые компилятором gcc, имеют формат ELF (не­смотря на то, что стандартное название исполняемого файла, создаваемого в результате функционирования компиляторов, осталось прежним — a.out). Более старые программы, имеющие формат a.out, также могут выполняться системами, поддерживающими фор­мат ELF.

Языки C++ и Objective С: команда g++

Утилита gcc выполняет также функции компилятора языка C++. Она может счи­тывать и компилировать любую программу на языке C++. Однако она не позволяет выполнять автоматическую компоновку с вызовом библиотеки классов C++. Эта биб­лиотека должна вызываться отдельно, с использованием режима командной строки. Для этого можно также воспользоваться командой c ++, в результате чего вызывается компилятор gcc вместе с библиотекой классов C++.

Для файлов исходного кода на языке C++ используются расширения, отличающие от расширений обычных файлов кода на языке С. Компилятору C++ соответствует множество различных расширений: С, cc, cхх или срр. Если не принимать во внимание это различие, то компиляция программ C++ проходит точно так же, как и компиляция программ С. Вместо команды gcc рекомендуется использовать команду c ++. В сле­дующем примере показано, как должна быть выполнена компиляция программы myprog.cpp, написанной на языке C++.

$ c++ myprog.с -о myprog

 

Компилятор gcc также поддерживает программы Objective-C. Этот язык програм­мирования является объектно-ориентированной версией языка С, изначально разрабо­танной для операционных систем NeXt. Для компиляции программы на языке Objective-C необходимо использовать команду gcc с параметром -lobjc, с помощью которого обеспечивается компоновка с библиотекой классов Objective-C, libobjc.so.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)