Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: gcc не создает выполнимые файлы  (Прочитано 2440 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lein

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
gcc не создает выполнимые файлы
« : 30 Июня 2008, 20:37:43 »
Компилирую программу Hello Word, hello.c:
#include <stdio.h>
int main()
{printf("Hello\n");}
с помощью команды:
gcc -c hello.c -o hello
Файл получился не выполнимым:
ls -l hello
-rw-r--r-- 1 lein lein 860 2008-06-30 19:48 hello
Изменяю аттрибуты
chmod +x hello
-rwxr-xr-x 1 lein lein 860 2008-06-30 19:48 hello
Запускаю
./hello
bash: ./hello: не могу запустить бинарный файл

В чем дело?
Изменились опции gcc и теперь вместо "-c -o" надо писать что-то другое?
Или я забыл эти опции после долго долгого перерыва?
Надо доустановить gcc? Тогда зачем в Убанте по умалчанию ставят недоделанный компилятор?
Что-то другое?

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: gcc не создает выполнимые файлы
« Ответ #1 : 30 Июня 2008, 20:51:25 »
-c - это "компилировать, но не линковать". Т.е. на выходе у тебя получается сырой объектный файл, а не исполняемый. Просто убери эту опцию :)

Оффлайн lein

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: gcc не создает выполнимые файлы
« Ответ #2 : 30 Июня 2008, 21:06:22 »
Большое спасибо! Получилось.

Оффлайн intelegator

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: gcc не создает выполнимые файлы
« Ответ #3 : 02 Июля 2008, 14:28:28 »
-c - это "компилировать, но не линковать". Т.е. на выходе у тебя получается сырой объектный файл, а не исполняемый. Просто убери эту опцию :)

а зачем компоновать объектный файл, если сразу можно скомпилить исполняемый?

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: gcc не создает выполнимые файлы
« Ответ #4 : 02 Июля 2008, 17:59:21 »
если исполняемый не нужен, очевидно

Оффлайн intelegator

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: gcc не создает выполнимые файлы
« Ответ #5 : 02 Июля 2008, 19:17:47 »
если исполняемый не нужен, очевидно
ок, тогда зачем объектный файл?

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: gcc не создает выполнимые файлы
« Ответ #6 : 02 Июля 2008, 20:20:41 »
в большинстве случаев достаточно получить исполняемый прямо из текста программы. Но то, что есть возможность явно указать, какие стадии сборки делать, а какие нет - это только разумно. Может, кому-то нужно увидеть свою C++ прогу на ассемблере :)

 

Страница сгенерирована за 0.029 секунд. Запросов: 25.