Компилятор gcc
Модератор: Модераторы разделов
-
- Сообщения: 6
- ОС: ALT Linux
Компилятор gcc
Решил написать свою первую программу на Linux, как пологается Hello World! А компилятор мне говорит "нет такого файла" хотя файл есть... ну маразм какой - то... я вроде не настолько туп, хоть и с линуксом недавно знаком... Стоит ALT Linux 4.0
Файл ../hello/hello.c находясь в каталоге hello на команду gcc hello.c получаю ответ No such file or directory... Заранее спасибо, если кто нибудь найдет минутку чтобы меня просветить...
Файл ../hello/hello.c находясь в каталоге hello на команду gcc hello.c получаю ответ No such file or directory... Заранее спасибо, если кто нибудь найдет минутку чтобы меня просветить...
-
- Сообщения: 585
- Статус: Программист С++
- ОС: Debian GNU/Linux
-
- Сообщения: 6
- ОС: ALT Linux
Re: Компилятор gcc
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
return(0);
}
взято с http://linuxcenter.ru/lib/books/linuxdev/linuxdev1.phtml
int main(void)
{
printf("Hello world!\n");
return(0);
}
взято с http://linuxcenter.ru/lib/books/linuxdev/linuxdev1.phtml
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Компилятор gcc
Полный вывод компилятора, плз.
-
- Сообщения: 6
- ОС: ALT Linux
Re: Компилятор gcc
/usr/bin/i586-alt-linux-gcc: No such file or directory
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Компилятор gcc
Вероятно это относится к невозможности найти какие-то компоненты компилятора.
При попытке указать неверное имя исходника, gcc (по-крайней мере доступный мне 3.4.4) сообщает буквально следующее:
$ gcc nofile.c
gcc: nofile.c: No such file or directory
gcc: no input files
-
- Сообщения: 6
- ОС: ALT Linux
Re: Компилятор gcc
Доехал... ему видно нечем компилировать... я не тот файл искал. Спасибо большое!
-
- Сообщения: 1
Re: Компилятор gcc
скорее всего не задал файл
синтаксис для gcc: gcc -o hello hello.c
синтаксис для gcc: gcc -o hello hello.c
-
- Сообщения: 283
- ОС: Slackware 12.2
Re: Компилятор gcc
Господа, раз есть уже топик про gcc, не стал новый открывать.
у меня есть допустим программа на С
компилю
Дальше я посмотрел на ассемблерный код.
Теперь вопрос. А как этот ассемблерный код откомпилить в бинарник?
Пытался с
получается a.out без возможности запуска(-x) делаю
но запустить не могу все равно, говорит что это не бинарник.
Пытаюсь сделать так:
линкер дает ошибку, мол нет такой метки _start
Полазил по коду, действительно там определяется функция main. Компилить не хочет. Может кто сталкивался с сией проблемой. Очень уж хочется поэкспериментировать с ассемблером в unix
у меня есть допустим программа на С
компилю
Код: Выделить всё
gcc -S somefile.c
Дальше я посмотрел на ассемблерный код.
Теперь вопрос. А как этот ассемблерный код откомпилить в бинарник?
Пытался с
Код: Выделить всё
as somefile.S
получается a.out без возможности запуска(-x) делаю
Код: Выделить всё
chmod +x a.out
но запустить не могу все равно, говорит что это не бинарник.
Пытаюсь сделать так:
Код: Выделить всё
as -osomefile.o somefile.S
Код: Выделить всё
ld somefile.o
линкер дает ошибку, мол нет такой метки _start
Полазил по коду, действительно там определяется функция main. Компилить не хочет. Может кто сталкивался с сией проблемой. Очень уж хочется поэкспериментировать с ассемблером в unix
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Компилятор gcc
mikluxo блин... причём тут линкер-ассемблер??? вы хоть с Си разберитесь. Год назад уже писал, повторю:
всё у меня запускается и работает.
Удачи.
Код: Выделить всё
[drb@localhost ~]$ cat > test.c
#include <stdio.h>
int main()
{
printf("hello, lammers\n");
return 0;
}
#тут я нажал CTRL+D
[drb@localhost ~]$ gcc test.c
[drb@localhost ~]$ ./a.out
hello, lammers
[drb@localhost ~]$
всё у меня запускается и работает.
Удачи.
-
- Сообщения: 2
Re: Компилятор gcc
Здравствуйте. Получил в универе задание написать несколько программ на С GCC, но так как пока мало знаком с этим компилятором и и языком C, то прошу у вас помощи.
1-ая прога должна визуализировать процесс сортировки символов методом обмена.
2-ая - это простейший сервер, который на запрос клиента возвращает список процессов.
Помогите, пожалуйста, кто чем может
1-ая прога должна визуализировать процесс сортировки символов методом обмена.
2-ая - это простейший сервер, который на запрос клиента возвращает список процессов.
Помогите, пожалуйста, кто чем может

-
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: Компилятор gcc
запрос готовых решений не приветствуется. пишите программы сами, а будут конкретные вопросы - вам здесь помогут.
вот так вот неожиданно и получил, учился-учился в медицинском, а тут на вам - пишите программы! так что ли? видно плохо учился.
WhiteEvGenius писал(а): ↑28.11.2008 10:42Получил в универе задание написать несколько программ на С GCC, но так как пока мало знаком с этим компилятором и и языком C, то прошу у вас помощи.
вот так вот неожиданно и получил, учился-учился в медицинском, а тут на вам - пишите программы! так что ли? видно плохо учился.
-
- Сообщения: 283
- ОС: Slackware 12.2
Re: Компилятор gcc
drBatty Я Вас попрошу относиться уважительнее к другим участникам форума. С С++/C я сам как-нибудь без Вас разберусь. Мне нужно из C перевести в asm а потом этот же исходный код через ld перевести в a.out Проблема в том. Что когда пишешь прогу на С, он компилит .S файл
В котором Entry point main
А линкер ищет _start
Так решение еще и не нашел. Помогите добрые люди. В принципе пока не очень надо. Но очень хочется поковырять код, который создает gcc.
Моя задача поковырять *.S потом отлинковать и посмотреть как работает. Напрямую gcc -oHello hello.c мне не нужен.
В котором Entry point main
А линкер ищет _start

Так решение еще и не нашел. Помогите добрые люди. В принципе пока не очень надо. Но очень хочется поковырять код, который создает gcc.
Моя задача поковырять *.S потом отлинковать и посмотреть как работает. Напрямую gcc -oHello hello.c мне не нужен.
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
-
- Сообщения: 2
Re: Компилятор gcc
Учиться, товарищ RasenHerz, я только начал. К тому же про готовые решения речи не шло. Я и сам хочу научиться писать программы. Я просто не до конца понимаю, что от меня требуется. Вот и подумал, возможно, кто-то объяснит или литературу какую-нибудь посоветует.
-
- Сообщения: 283
- ОС: Slackware 12.2
Re: Компилятор gcc
WhiteEvGenius Ваш 2й вопрос Вам под UNIX, или под windows[о qt пока речь не идет]? Вообще, второй вопрос затрагивает работу с сетью. Если бы Вы делали на Java, тогда можно было бы не заморачиваться, на какой ОС делать. Во вторых, как сортировка, которую Вы указали, работает знаете? Это InsertionSort или BubbleSort или еще что?
ЗЫ По моему Вам нужно почитать Deitel С How to program или на русском Как программировать на С. И еще, этот вопрос не в том топике задан. Нужно создавать отдельный.
в [] указано, что новичкам читать не надо.
ЗЫ По моему Вам нужно почитать Deitel С How to program или на русском Как программировать на С. И еще, этот вопрос не в том топике задан. Нужно создавать отдельный.
в [] указано, что новичкам читать не надо.
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
-
- Сообщения: 238
- Статус: зануда
- ОС: Чё?
Re: Компилятор gcc
mikluxo писал(а): ↑28.11.2008 10:57drBatty Я Вас попрошу относиться уважительнее к другим участникам форума. С С++/C я сам как-нибудь без Вас разберусь. Мне нужно из C перевести в asm а потом этот же исходный код через ld перевести в a.out Проблема в том. Что когда пишешь прогу на С, он компилит .S файл
В котором Entry point main
А линкер ищет _start
Так решение еще и не нашел. Помогите добрые люди. В принципе пока не очень надо. Но очень хочется поковырять код, который создает gcc.
Моя задача поковырять *.S потом отлинковать и посмотреть как работает. Напрямую gcc -oHello hello.c мне не нужен.
Я не совсем понял, что вы хотите, но сходите сюда и внимательно прочтите верхние две темы (как происходит компиляция)
Уверен, все разьяснится.
Читайте новости на ЛОРе
Спички - детям!
-
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: Компилятор gcc
mikluxo писал(а): ↑28.11.2008 10:57drBatty Я Вас попрошу относиться уважительнее к другим участникам форума. С С++/C я сам как-нибудь без Вас разберусь. Мне нужно из C перевести в asm а потом этот же исходный код через ld перевести в a.out Проблема в том. Что когда пишешь прогу на С, он компилит .S файл
В котором Entry point main
А линкер ищет _start
Так решение еще и не нашел. Помогите добрые люди. В принципе пока не очень надо. Но очень хочется поковырять код, который создает gcc.
Моя задача поковырять *.S потом отлинковать и посмотреть как работает. Напрямую gcc -oHello hello.c мне не нужен.
а изменить main на _start? =)
-
- Сообщения: 283
- ОС: Slackware 12.2
Re: Компилятор gcc
Спасибо за ссылку, очень интересный материал там подобран. Добавил в избранное. Может еще не раз вернусь к нему.
Хотелось бы автоматом(ведь как-то он с С файла переводит сам), но пока и так сойдет. Спасибо за совет.
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
-
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Компилятор gcc
Когда 'он' (компилятор) собирает вашу программу, он к *.o, полученным из ваших исходников, добавляет ещё объектник C Runtime (что-то-там-crt.o). В нём и определена функция _start, которая вызывает main.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
- Сообщения: 283
- ОС: Slackware 12.2
Re: Компилятор gcc
Очень интересно, а Вы не знаете, где про это можно почитать более подробно? Ну должен же быть способ без перередактирования асм файла откомпилить на as и слинковать с ld? Заранее спасибо.
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
-
- Сообщения: 238
- Статус: зануда
- ОС: Чё?
Re: Компилятор gcc
Собственно
Или все таки надо as и ld?
Код: Выделить всё
bin$ gcc -S shet.c
bin$ ls
shet.c shet.s
bin$ gcc shet.s -o shet
bin$ ls
shet.c shet shet.s
Или все таки надо as и ld?
Спички - детям!
-
- Сообщения: 283
- ОС: Slackware 12.2
Re: Компилятор gcc
Как раз то, что надо. Хотел поэкспериментировать с asm AT&T синтаксиса, посмотреть как код компилит, изменить что-нибудь, перекомпилить, ну теперь займусь ковырянием. Спасибо большое!!!
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
-
- Сообщения: 174
- Статус: начинающий пингвин
- ОС: Arch/Slackware
Re: Компилятор gcc
Вопрос такой, есть простой код:
компилирую:
Почему при компиляции не выводиться фраза "Hello World" ?
Код: Выделить всё
bash-3.1$ cat hello.cpp
#include <iostream>
int main()
{
std::cout << "Hello World";
return 0;
}
компилирую:
Код: Выделить всё
bash-3.1$ g++-gcc-4.2.4 hello.cpp
bash-3.1$
Почему при компиляции не выводиться фраза "Hello World" ?
Arch user | Kernel 2.6.32 |
"Краткость - сестра таланта" (с) А.П. Чехов |
"Краткость - сестра таланта" (с) А.П. Чехов |
-
- Сообщения: 135
- ОС: FreeBSD 8.0-RELEASE amd64
Re: Компилятор gcc
Хм... А не поясните, что Вы вообще ожидали от столь странной строчки?
-
- Сообщения: 174
- Статус: начинающий пингвин
- ОС: Arch/Slackware
Re: Компилятор gcc
AestheteAnimus писал(а): ↑09.01.2009 15:57Хм... А не поясните, что Вы вообще ожидали от столь странной строчки?
Раньше именно так *.cpp файлы и компилировал. Если компилировать g++ hello.cpp итог будет тот же.
Arch user | Kernel 2.6.32 |
"Краткость - сестра таланта" (с) А.П. Чехов |
"Краткость - сестра таланта" (с) А.П. Чехов |
-
- Сообщения: 135
- ОС: FreeBSD 8.0-RELEASE amd64
Re: Компилятор gcc
Интересно... и где же нашли такую забавную строчку?
Вообще, обычно это выглядит так:
Код: Выделить всё
# Компиляция
g++ -c main.cpp
# Линковка
g++ -o main main.o
-
- Сообщения: 174
- Статус: начинающий пингвин
- ОС: Arch/Slackware
Re: Компилятор gcc
Из консоли
Код: Выделить всё
bash-3.1$ g++
g++ g++-gcc-4.2.4
Код: Выделить всё
bash-3.1$ g++ -с hello.cpp
g++: unrecognized option '-с'
Так и должно быть ?
Arch user | Kernel 2.6.32 |
"Краткость - сестра таланта" (с) А.П. Чехов |
"Краткость - сестра таланта" (с) А.П. Чехов |
-
- Сообщения: 135
- ОС: FreeBSD 8.0-RELEASE amd64
-
- Сообщения: 174
- Статус: начинающий пингвин
- ОС: Arch/Slackware
Re: Компилятор gcc
AestheteAnimus все, разобрался, благодарю.
Arch user | Kernel 2.6.32 |
"Краткость - сестра таланта" (с) А.П. Чехов |
"Краткость - сестра таланта" (с) А.П. Чехов |
-
- Сообщения: 460
- ОС: openSUSE
Re: Компилятор gcc
Fen1x писал(а): ↑09.01.2009 15:51Вопрос такой, есть простой код:
Код: Выделить всё
bash-3.1$ cat hello.cpp #include <iostream> int main() { std::cout << "Hello World"; return 0; }
компилирую:
Код: Выделить всё
bash-3.1$ g++-gcc-4.2.4 hello.cpp bash-3.1$
Почему при компиляции не выводиться фраза "Hello World" ?
Хм... интересно, а почему эта строчка должна выводиться при компиляции? Может быть, я чего-то не понимаю?