Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,206
#1

.elf и для чего они нужны - C++

18.03.2015, 23:51. Просмотров 929. Ответов 12
Метки нет (Все метки)

Собственно сабж
Почитал Вики, как-то для новичка не очень много прояснилось
И объясните еще пожалуйста разницу с ехе
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2015, 23:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос .elf и для чего они нужны (C++):

Что такое compile-time алгоритмы и для чего они нужны? - C++
А есть от них хоть какая-то практическая польза? По-моему нет

Для чего используется DLL? - C++
исходники кода написанного на C++ хранятся в DLL верно?? Для чего используется DLL?? Добавлено через 2 минуты вернее не исходники а...

Какие библиотеки нужны для работы с видео avi, flv и для работы с mp3? - C++ Builder
Hello world! Подскажите пожалуйста какие библиотеки нужни мне для работи с видео .avi, flv и т.д и для работи .mp3? Союираюс...

Для чего используются ActionList - C++ Builder
для чего можна использовать ActionList памагите естли можно напишите с кодами

для чего нужна строчка? - Visual C++
добый день!подскажите пожалйста ,что означает следующая строчка,а в особенности ID_WIN HWND hch = GetDlgItem(GetParent(hwnd), ID_WIN); ...

Что за драйвера такие, для чего они и нужны ли они вообще? - Драйверы
Что за драйвера такие, для чего они и нужны ли они вообще? 1 Intel SATA Preinstall driver (For AHCI / RAID Mode) Note: Press F6...

12
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 00:33 #2
У elf-файлов нет расширения .elf.
Цитата Сообщение от animator404 Посмотреть сообщение
Собственно сабж
Для чего нужны? Для того же, для чего и exe под виндой - бинарный формат для загрузки в память и запуска.
Цитата Сообщение от animator404 Посмотреть сообщение
И объясните еще пожалуйста разницу с ехе
Форматы и первого и второго описаны и доступны. Разница везде.
0
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,206
19.03.2015, 12:27  [ТС] #3
Цитата Сообщение от Velesthau Посмотреть сообщение
Для чего нужны? Для того же, для чего и exe под виндой - бинарный формат для загрузки в память и запуска.
так в линуксе не нужно .exe а приложение запускается
и я не разу не видел чтобы при дабл клике на elf запускалась программа

можете описать применение такого файла, на примере
0
DrOffset
7313 / 4413 / 999
Регистрация: 30.01.2014
Сообщений: 7,246
19.03.2015, 12:48 #4
Цитата Сообщение от animator404 Посмотреть сообщение
так в линуксе
В линуксе бинарные исполняемые файлы (и библиотеки тоже) - elf.
0
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,206
19.03.2015, 12:49  [ТС] #5
Цитата Сообщение от DrOffset Посмотреть сообщение
В линуксе бинарные исполняемые файлы (и библиотеки тоже) - elf.
elf но без .elf в названии исполняемого файла посколку линуксу это не нужно
правильно?
0
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 12:56 #6
Цитата Сообщение от animator404 Посмотреть сообщение
так в линуксе не нужно .exe а приложение запускается
Что это за бессмысленная фраза? Да, в линуксе программы запускаются. Сам в шоке.
Цитата Сообщение от animator404 Посмотреть сообщение
и я не разу не видел чтобы при дабл клике на elf запускалась программа
Это зависит от файлового менеджера, а не формата файла.
Цитата Сообщение от animator404 Посмотреть сообщение
можете описать применение такого файла, на примере
Запусти /bin/bash - применение. Запустил командный интерпретатор.

Добавлено через 44 секунды
Цитата Сообщение от animator404 Посмотреть сообщение
elf но без .elf в названии исполняемого файла посколку линуксу это не нужно
правильно?
Не нужно. Можешь .doc поставить. ничего не изменится. Если не считать файловые менеджеров и их особенности.
0
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,206
19.03.2015, 12:57  [ТС] #7
Цитата Сообщение от DrOffset Посмотреть сообщение
В линуксе бинарные исполняемые файлы (и библиотеки тоже) - elf.
elf но без .elf в названии исполняемого файла посколку линуксу это не нужно
правильно?
Цитата Сообщение от Velesthau Посмотреть сообщение
Запусти /bin/bash - применение. Запустил командный интерпретатор.
я вас вообще не понимаю
причем тут скрипты к бинарникам?
0
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 12:57 #8
Цитата Сообщение от animator404 Посмотреть сообщение
Почитал Вики
А надо было взять и почитать книгу

Добавлено через 23 секунды
Цитата Сообщение от animator404 Посмотреть сообщение
причем тут скрипты к банарникам?
При том, что /bin/bash - это elf-файл. Скрипты здесь не при чем.
1
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,206
19.03.2015, 12:59  [ТС] #9
Цитата Сообщение от Velesthau Посмотреть сообщение
При том, что /bin/bash - это elf-файл. Скрипты здесь не при чем.
а, понял - сам интерпретатор

окю тогда так. я компилирую код с gcc на линуксе
какой у финального файла будет формат?
0
DrOffset
7313 / 4413 / 999
Регистрация: 30.01.2014
Сообщений: 7,246
19.03.2015, 13:08 #10
Цитата Сообщение от animator404 Посмотреть сообщение
elf но без .elf в названии исполняемого файла посколку линуксу это не нужно
правильно?
Расширение не нужно, потому что исполняемость файла определяется правами в файловой системе.

Цитата Сообщение от animator404 Посмотреть сообщение
какой у финального файла будет формат?
elf будет.

командой
Bash
1
objdump -f имя_твоего_бинарного_файла
можешь удостовериться.

Вот например:
$ objdump -f /usr/bin/bash

/usr/bin/bash: формат файла elf32-i386
архитектура: i386, флаги 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
начальный адрес 0x08060238
1
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 13:30 #11
Цитата Сообщение от animator404 Посмотреть сообщение
какой у финального файла будет формат?
запусти команду file на результат работы компилятора и она тебе напишет, что за файл.
0
Evg
Эксперт CАвтор FAQ
17934 / 6162 / 409
Регистрация: 30.03.2009
Сообщений: 16,918
Записей в блоге: 27
19.03.2015, 15:44 #12
Цитата Сообщение от animator404 Посмотреть сообщение
так в линуксе не нужно .exe а приложение запускается
и я не разу не видел чтобы при дабл клике на elf запускалась программа
Сие есть разный способ работы в операционных системах. О том, допустимо ли исполнять файл, или нет, windows делает вывод на основании расширения файла (.bat, .com, .exe, .msi и т.п. - можно, остальные нельзя). Но вот в linux'е, как и в любом юниксе, информация о том, можно запускать файл или нельзя хранится в атрибутах файла (есть атрибуты для чтения, записи и исполнения), при этом расширение файла не играет никакой роли. Если у файла есть права на исполнение, значит linux подразумевает, что его можно исполнять.

Далее linux читает первые несколько байта этого файла. Если в первых двух байтах записаны #!, то linux предполагает, что файл является скриптом и далее читает путь до интерпретатора, при помощи которого исполняется файл. У скриптов самой первой строкой обычно стоит что-то типа #!/usr/bin/perl, что означает, что при запуске файла под именем a.pl в реальности linux запустит "/usr/bin/perl a.pl". Если в первых байтах написано .ELF (где . - это символ с кодом 127), то linux считает, что мы имеем бинарник в формате elf (который по смыслу совпадает с виндузовым форматом exe) и далее запускает специальный загрузчик, который этот файл загрузит в память и исполнит. Наверное есть ещё куча всяких разных заголовков, которые трактуются специальным образом. Если по первым байтам не удалось выяснить тип файла, то современные linux'ы считают, что это скрипт, который надо исполнять при помощи текущего интерпретатора или что-то типа того, но здесь уже в разных ОС и версиях вполне могут работать разные соглашения

ELF - это формат файла, в который по специальным правилам записаны коды, данные, всякая информация для отладчика или дизассемблера и прочее барахло
2
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
19.03.2015, 17:13 #13
Цитата Сообщение от animator404 Посмотреть сообщение
разницу с ехе
Именно для Windows - незначительна, "общий предок" у них - COFF.

EXE - это контейнер, для хранения чего угодно, обрабатываемый загрузчиком OS. За этим расширением может скрываться несколько различных форматов (DOS MZ, Win16 NE, OS2 LE/LX, Win32 PE, Win64 PE+), но все они начинаются с сигнатуры MZ, после которой загрузчик ожидает увидеть стандартный заголовок и набор таблиц - описателей формата.

Win32 PE - это "ELF для бедных", упрощенный вариант под единственную архитектуру.

А где хранится признак "исполняемости" файла - как часть имени (.EXE/.OCX/.SCR/.DLL etc) или в другом поле файловой системы - малозначимая деталь реализации.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2015, 17:13
Привет! Вот еще темы с ответами:

Struts для чего они нужны? - Java
Привет всем! Сразу прошу не бить ногами, если кому-то вопрос показался идиотским. Но дело в том, что уже некоторое время пытаюсь...

Allocator_traits propagate_on_container_ - для чего они нужны - C++
В std::allocator_traits есть такие определения как propagate_on_container_copy_assignment, propagate_on_container_move_assignment и...

Что такое шейдеры и для чего они нужны? - Видеокарты
Всем привет! Кто сможет описать что такое шейдеры и для чего они нужны только более понятным русским языком(а не скачивая кусок из...

Что такое атрибуты и зачем они? Для чего нужны директивы препроцессора? - C#
Короче,товарищи,задаю вопрос не первый раз,поэтому,если уже отвечали,то прошу прощения,но я забыл уточнить в вопросе то,что мне всё-таки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
19.03.2015, 17:13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru