LINUX.ORG.RU

Компиляция .с файла


0

0

Понимаю, у многих мой вопрос вызовет улыбку или негодование, но я не программер, а просто пользователь. (ядра и программы собирать умею) Есть "чистый" Си (или С++) код, написанный не мной. Я хочу его выполнить на своей машине, желательно скомпилировав его (ну, к примеру, с помощью gcc) Вопрос: как? Естественно, никаких Makefile (или ./configure) нет.

anonymous

А простой пользователь коммандам man и info таки не обучен, но уже ядро компилить берется? Оф-фигеть!

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

Что значит уже?

И что Офигеть... Я ядра собираю с 2.0, для этого читать man gcc мне не обязательно. Ты сам man gcc хоть раз делал? Сделай. gcc [filename] у меня не работает. Не можешь подсказать, промолчи. Таких оффигивающих (эстонец?) полный форум. Доки читать и родную сеть администрить мы все умеем (кто тебе сказал, что я начинающий польователь?) А свой оффигизм оставть за своим фаерволом.

anonymous
()

На сколько я понял, имеется один файл на С.С++. В этом случае он компилируется следующим образом:
# gcc -o filename filename.c
В итоге получим испольняемый файл filename.

Из полезных опций можно выделить следующие:
-O1 .... -O9 ---- оптимизация генерируемого кода. Чем больше число, тем лучше оптимизация и, как следствие, больше время компиляции. В реальной практике обычно используется -O1, -O2(чаще всего), или -O3. Остальные уровни оптимизации --- исключительно для разработчиков ПО.
-i586 -mno-486 и т.д.(см. man gcc) --- указывает компилятору, набор инструкций какого процессора необходимо использовать. По умолчанию используется тот набор, с использованием которого был скомпилирован дистрибутив.

P.S. Иногда после копиляции бывает полезно выполнить
# strip -s filename
для удаления символьной информации (толком не знаю, что это такое :-)) из скомпилированного кода. Часто размер программы значительно уменьшается.

syomin
()

Большое человеческое спасибо! (+)

Именно то, что я хотел увидеть в ответ. Просто, понято, и без офффигевания. Спасибо, все получилось!

anonymous
()
Ответ на: Что значит уже? от anonymous

Если ты действительно не в состоянии, сказав info gcc увидеть сразу же раздел [Invocation] - то это твои трудности. Там всё по шагам расписано. Более того, это полезно прочитать независимо от того, будешь ли ты в дальнейшем им пользоваться.

anonymous
()

Кстати.. c++ надо компилять g++ -o filename filename.cpp

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