LINUX.ORG.RU

компиляция в a.out формат


0

0

Как скомпилировать простую программку через "cc" или "gcc" (кстати, в чём разница между ними? и что такое g++?) в формат a.out

я компилирую так: "cc file.c"
"file a.out":
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), not stripped

★★★★
Ответ на: комментарий от grustnoe

Какая-то версия нужна или компиляция с определёнными ключами?

Selecter ★★★★
() автор топика

Зачем тебе a.out? Это очень старый формат. Сейчас все в ELF компилится. A g++ это обвертка к gcc для сборки C++ прог.

svyatogor ★★★★★
()
Ответ на: комментарий от svyatogor

И правда - зачем =) Тогда так спрошу: как собрать бинарник, который бы не зависил от других библиотек? Кажется это называется static linking?

Selecter ★★★★
() автор топика
Ответ на: комментарий от Selecter

>Тогда так спрошу: как собрать бинарник, который бы не зависил от других библиотек?

Просто передай gcc ключ -static. Вообще то man gcc рулит, ну да ладно :)

P.S. А че ты вообще пытаешься сделать? Опиши конечную цель, может для нее есть лучше решение...

svyatogor ★★★★★
()
Ответ на: комментарий от svyatogor

man-ы то рулят, но man gcc большеват будет. Цель программы - научиться компилировать по-разному пустяковые программы на Си.

Selecter ★★★★
() автор топика
Ответ на: комментарий от Selecter

дык ну в манах же поиск есть ;)

anonymous
()
Ответ на: комментарий от Selecter

BTW, на современном Линуксе почти невозможно слинковать прогу ДЕЙСТВИТЕЛЬНО статически. Чтобы это сделать, требуется сначала самому собрать специальную версию libc (с отключенной NSS).

Я пару лет назад в это стукнулся, вот тут немного про это: http://www.linux.org.ru/view-message.jsp?msgid=211297

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.