|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Двоичные форматы ELF и a.out
Существуют два формата, которые могут использоваться при создании двоичных файлов (например, файлов исполняемых программ). Первый из них именуется 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. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |