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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Проблема компиляции Си программы при помощи gcc  (Прочитано 4225 раз)

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

Оффлайн solyr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Пытаюсь откомпилировать программу в Ubuntu Desktop 8.04 Hardy Heron Установил пакеты gcc и build-essential. Пробую откомпилировать программу gcc имя_программы Выдает следующее сообщение

sajan@sajan-desktop:~/soft$ gcc prg4
prg4: file not recognized: File format not recognized
collect2: ld returned 1 exit status


Может проблема в кодировке исходного кода. Локализация по умолчанию в UTF-8. Пробовал сохранять исходный код программы в кодировке UTF-8, KOI, виндовозной ничего не помогает. То же самое. Посоветуйте в чем может прблема?
И ище вопрос. Стандартные Си шные хеадеры автоматически подключаются компилятором?
« Последнее редактирование: 02 Декабря 2009, 17:16:25 от solyr »

GOTO_sHELL

  • Гость
Переименуй файл в prg4.c

Пользователь решил продолжить мысль 02 Декабря 2009, 17:21:26:
хеадеры подключаются директивами include в файле с кодом.
« Последнее редактирование: 02 Декабря 2009, 17:21:26 от GOTO_sHELL »

Оффлайн solyr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
не думал что gcc к расширениям в Linuxe требователен. Спасибо, программа откомпилировалась

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
не думал что gcc к расширениям в Linuxe требователен
Гы-гы...
Для справки: операционная система Linux, точнее ее файловая система не знает, что такое "расширение имени файла". Это понятие появилось лет 20 назад в DOS, поскольку 8 символов оказалось недостаточно, с DOS же и умерло.
Здесь и точка, и все, что после нее, является такой же полноценной частью имени файла, как и все остальное.
Windows позволяет ленивым юзерам части имен скрывать.
« Последнее редактирование: 03 Декабря 2009, 11:32:33 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Riateche

  • Активист
  • *
  • Сообщений: 279
    • Просмотр профиля
    • Idzaaus
Можно задать язык вручную: gcc -x c prg4
Подробнее смотрите в мане

Оффлайн solyr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
понял насчет расширения. Я даж не подозревал что после точки указывается язык компиляции. Сенкс.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
понял насчет расширения. Я даж не подозревал что после точки указывается язык компиляции. Сенкс.
Чего???
Вы ничего не поняли!
Никаких языков после точки не указывается!

Компилятор должен получить в параметрах имя файла.
Вы ему указали prg4.
Поэтому он честно попытался открыть файл с именем prg4 в текущей директории.
Однако, Вы компилятор обманули - файл с текстом программы назывался prg4.c, а в файле prg4 было что-то еще.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн solyr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
исходный код программы был изначально в prg4 Он никак не компилился Выдавал сообщение в что указано в первом посте После того как приписал к имени файл .с нормально скомпилил программу и выдал a.out

Оффлайн Riateche

  • Активист
  • *
  • Сообщений: 279
    • Просмотр профиля
    • Idzaaus
Чего???
Вы ничего не поняли!
Никаких языков после точки не указывается!

Компилятор должен получить в параметрах имя файла.
Вы ему указали prg4.
Поэтому он честно попытался открыть файл с именем prg4 в текущей директории.
Однако, Вы компилятор обманули - файл с текстом программы назывался prg4.c, а в файле prg4 было что-то еще.
По-моему, это вы ничего не поняли. Имя файла было указано правильно. gcc отказался его компилировать потому, что gcc действительно определяет язык программы по расширению.

 

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