Установка Линукса и компилятора на него. (проблема решена).

lenok62

Здравствуйте, хочу через несколько часов установить на внешний хард диск Линукс. Главное то чтобы на нем был компилятор. два раза до этого устанавливал на комп Убунту и Опенсус но как странно в них я компилятора не нашел. Сейчас есть у меня установочный диск Убунту(СД) и Мандрива(ДВД). Подскажите как мне сделать чтобы на ноуте наконец-то был компилятор на базе линукса.
Готов послушать любой совет.

Serab

Поставь gentoo. Плюс в следующем: когда (если) он у тебя установится, уже можешь быть уверенным, что то, что ты ищещь (компилятор там есть.

geja_03

Собери кросс-компилятор gcc под Cygwin :D

kokto

В репозитариях этот компилятор под С, называется gcc. Для фортрана тоже есть, если не ошибаюсь gfortran называется. Если из-под терминала не компилятся, значит, надо доставить из репозитария.
Если у тебя Mandriva Powerpack, то не исключено, что они уже в дистриб входят.

kokto

Собери кросс-компилятор gcc под Cygwin :D
Тоже вариант. Под виндой.

dangerr

Убунту и Опенсус но как странно в них я компилятора не нашел
Действительно крайне странно.

Sharp

В Убунте ставишь пакет build-essential (из командной строки sudo apt-get update && sudo apt-get install build-essential) и будет у тебя и компилятор, и make, и libc.

hwh2010

Сейчас есть у меня установочный диск Убунту(СД) и Мандрива(ДВД). Подскажите как мне сделать чтобы на ноуте наконец-то был компилятор на базе линукса.Готов послушать любой совет.
Я делаю так:
1. Поставить систему
2. Загрузиться
3. Настроить инет
4. Подключить репозитории в менеджере пакетов (apt,yum)
5. установить необходимое ПО втч компиляторы. (sudo aptitude install gcc)
если у тебя на CD/DVD есть необходимое ПО, то п.3 (а то и 4) можно пропустить

juliuzz

на двд с мандривой gcc точно есть, так что и 5 пункт можно выпустить
просто нужно выбрать при установке ручной выбор пакетов и отметить галку development

Viktory-s

Мандрива(ДВД). Подскажите как мне сделать чтобы на ноуте наконец-то был компилятор на базе линукса.
Установку в картинках можно посмотреть тут:

Информация о локальном зеркале тут:
Из локалки:
http://info.hackers/service/mirror/Mandriva/start
Или из инета:
http://info.area-b.msu.ru/service/mirror/mandriva/start
Установочные DVD-образы, для тех кто не хочет ставить по сети:
ftp:///pub/ISO/Mandriva
smb:///ISO/Mandriva

Для установки компилятора "из коробки" нужно выполнить два условия:
Выбрать третий пункт, ( 1)KDE; 2)GNOME; 3)Другие )
Поставить галочку напротив пункта Разработка и программирование (или что-то в этом роде) Там будет целая страница с разными пунктами соответствующими разным категориям устанавливаемых программ.

lenok62

Спасибо. Еще раз установлю (выбрав третий пункт).
Я один раз установил (выбрав второй вариант) и столкнулся с такой ошибкой: загрузчик выдает ошибку (error 17). я загрузчика написал на внешний хард диск, туда куда написал самого Мандриву.
На Мандриве есть загрузчик лило?

Viktory-s

Еще раз установлю (выбрав третий пункт).
Не надо!
Запусти мсс и установи gcc.

lenok62

Понял но! Не могу запустить операционную систему. Загрузчик выдает ошибку.

Viktory-s

Загрузчик выдает ошибку.
Поставь лило-загрузчик. С грубом не некоторых машинах такое бывает. Перестановка последнего не поможет. Это делается в конце установки.

lenok62

Груб на комп не идет.
А Лило нет на установках.
Скажите пожалуйста точную операционную программу в котором есть ЛИЛО.
+ как-то у меня не открывается комп "bmw".

Serab

Денис, ты?

Fragaria

Ты для начала напиши, какую систему устанавливаешь, мандриву или убунту?

lenok62

Нет, меня зовут Вугар

lenok62

Я постарался установить:
Мандрива 2009 фри (там был только загрузчик ГРУБ)
Опенсус 11.2 (там Лило не поддерживало, Соответственно Груб ошибку дал)
Убунту 9.04 (тоже там был только Груб)
Вообще что бы я не устанавливал там бывает только загрузчик ГРУб и он с моим ноутом не дружит. Раньше у меня был стационарный комп, на нем я установил Убунту (там еще был ХР на компьютере груб работал.
З.Ы. Я выше пересчитанные системы устанавливал на внешний хард ноута, проблема не в этом?

uncle17

при установке (практически) всегда есть возможность выбора из груба и лило

Fragaria

З.Ы. Я выше пересчитанные системы устанавливал на внешний хард ноута, проблема не в этом?
Возможно, что именно в этом. LILO тем более не будет работать на внешнем винте - это устаревший загрузчик.

lenok62

Понятно, значит надо постараться установить на хард ноута. Вроде возможно. Какой из пересчитанных систем мне постараться установить?(просто очень боюсь за винду, подскажите какой безопаснее). Хард ноута разделен и можно в одного из них(в котором не винда) загрузить линукс.
Что посоветуете?

Fragaria

Нет особой разницы, убунту или мандриву. У убунты большое комьюнити, так что с очень большой вероятностью все возникшие у тебя проблемы получится решить, а по мандриве у нас тут спец есть ().

Viktory-s

Винду не поломаешь, в крайнем случае сломаешь загрузчик, который тем же самым диском линукса можно восстановить. Но и это маловероятно.
Место выделенное есть под линукс на диске ноута? (чистый раздел без фс винды?)
Как это всё делается я тебе давал уже выше ссылку. Там поэтапно всё написано:
Можешь ещё поискать моё руководство по установке Мандрейка, там про разбиение диска очень подробно написано.
Более того, ты можешь оставить линукс на своём юсб-и диске и только загрузчик поставить на диск в ноуте.
А далее вопрос к знатокам: У usb-дисков определяется UUID?
Если да, то проблем вообще не будет.

Ivan8209

> А далее вопрос к знатокам: У usb-дисков определяется UUID?
А что, в линуксе не определяется?
---
"Хочу установить линукс на пылесос.
Не подскажете, какой дистрибутив сильнее сосёт?"

Viktory-s

А что, в линуксе не определяется?
Я не знаю, у меня нет такого диска.

Ivan8209

>> А что, в линуксе не определяется?
> Я не знаю, у меня нет такого диска.
Ответ неправильный. Правильный ответ:
"Я не знаю, у меня нет линукса."
---
"This user is BSD-compliant."

lenok62

ftp:///pub/ISO/Mandriva
smb:///ISO/Mandriva
Нет доступа, не могу взять.
Если это 172.16.57.177 то мне показывает что он отключен.

lenok62

Наконец-то установил. Установил Убунту 9.04 (когда устанавливал Мандриву там ошибка пошла и я забил).
Как мне сделать чтобы по умолчанию открывалась винда?
Вот уже убунту есть.(правда суда я зашел из винды. линукс говорит что не видит forum.local). Как мне найти gcc или если его нет как его установить?
Возможно, что именно в этом. LILO тем более не будет работать на внешнем винте - это устаревший загрузчик.
Да, из за этого было, на внешний хард убунту не загрузился а вот на пустой диск ноута установился с первого раза.

kruzer25

Как мне сделать чтобы по умолчанию открывалась винда?
Запускаешь убунту, запускаешь в ней консоль, sudo nano /boot/grub/menu.lst (или какой-то такой файл ставишь нужный номер системы по умолчанию, CtrlO, Enter, CtrlX.
Если скажет, что нет команды nano - перед этим sudo apt-get install nano.
Как мне найти gcc или если его нет как его установить?
Он так и называется - "gcc".
Если нет - в командной строке sudo apt-get install gcc (или, если нужна старая третья версия - sudo apt-get install gcc-3.4).

Vadim69

заодно sudo apt-get install g++
на всякий случай.

lenok62

вот что пишет:
vugar-laptop:~$ sudo apt-get install gcc
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Уже установлена самая новая версия gcc.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
vugar-laptop:~$
Вам не кажется что что-то не так?

uncle17

все нормально, стоит у тебя уже компилятор

kruzer25

Вам не кажется что что-то не так?
Да, что-то не так.
which gcc что выдаёт?

lenok62

which gcc что выдаёт?
/usr/bin/gcc
Voobshe kak zapuskat kompilyator? (Iz Ubuntu zashel v forum). Xotya Ubuntu eto linukc no ya ne moqu zapuskat kompilyator tak kak delayu na fakultete..

Ivan8209

> Voobshe kak zapuskat kompilyator?
make <progname>
---
"This user is BSD-compliant."

kruzer25

Voobshe kak zapuskat kompilyator?
Судя по непустому результату вывода which gcc - командой gcc.
Iz Ubuntu zashel v forum
Это, похоже, не убунта, а кубунта, в которой кеды, в которых переключалка.
Xotya Ubuntu eto linukc no ya ne moqu zapuskat kompilyator tak kak delayu na fakultete..

kruzer25

make <progname>
Сразу вспомнился анекдот про воздушный шар и математика.

Ivan8209

>> make <progname>
> Сразу вспомнился анекдот про воздушный шар и математика.
Чудо, во-первых, незачем запускать компилятор напрямую, любая
более или менее сложная программа потребует написания инструкции
по сборке. Во-вторых, в простейших случаях проще использовать
встроенную логику, даже в уродском gmake есть встроенные правила
.c .c.o .c.S и тому подобные.
---
"This user is BSD-compliant."

Alena_08_11

Ты напиши как ты на факультете вызываешь ?
ps. почему никто не посоветовал ему поставить безиксовый линух в виртуалбокс ? Тупо ту же слаку, с отмеченными крестиками на base system, development, system sources?

kokto

Voobshe kak zapuskat kompilyator? (Iz Ubuntu zashel v forum). Xotya Ubuntu eto linukc no ya ne moqu zapuskat kompilyator tak kak delayu na fakultete..
Почитай руководство по запуску: man gcc
Наскока я помню, простейший способ gcc -o program program.c
Вообще хороший простенький хелп можешь найти по адресу http://www.linuxcenter.ru/lib/books/linuev/linuev1.phtml

kokto

Чудо, во-первых, незачем запускать компилятор напрямую, любая
более или менее сложная программа потребует написания инструкции
по сборке. Во-вторых, в простейших случаях проще использовать
встроенную логику, даже в уродском gmake есть встроенные правила
.c .c.o .c.S и тому подобные.
Не морочь голову человеку. :)

kokto

Сразу вспомнился анекдот про воздушный шар и математика.
Ну-ка, расскажи на всякий случай :)

Ivan8209

> Наскока я помню, простейший способ gcc -o program program.c
Вот именно заэтим и надо не извращаться, а писать:

make program

Оно само вспомнит, какой ты сейчас используешь компилятор, какие
оптимизации, пути до нештатных заголовочных файлов и т.д.
---
"This user is BSD-compliant."

kokto

Пусть человек отдельно изучает make, ему для начала хоть какой файл откомпилить, чтобы убедиться, что в принципе оно у него работает.

Ivan8209

> Теперь посмотрите внимательно, что произошло. В каталоге
> появился новый файл a.out. Это и есть исполняемый файл.
> Запустим его. Наберите в консоли:
> ./a.out
> Программа
>From UNIX with love. Файл уже называется по имени программы,
а ты всё ещё рассказываешь про промежуточный шаг, который:
а) не нужен; б) вреден, поскольку даёт ненужное знание, которое
можно использовать (и используют!) неправильно.
---
"Не изобретай велосипеды, их уже изобрели за тебя."
Leo

Ivan8209

> Пусть человек отдельно изучает make, ему для начала хоть какой
> файл откомпилить, чтобы убедиться, что в принципе оно у него
> работает.
Подробно make он может и после изучить, но пусть лучше изучает сразу.
Тем более, что это упрощает команды, а не усложняет их.
---
"Не изобретай велосипеды, их уже изобрели за тебя."
Leo

kokto

Подробно make он может и после изучить, но пусть лучше изучает сразу.
Тем более, что это упрощает команды, а не усложняет их.
Ему надо просто проверить, работает ли компилятор. Остальное можно будет потом сделать.

lenok62

командой gcc.
Я всё правильно понял "что надо набирать на терминале"? (мне кажется вот здесь я что-то не то делаю).
http://forum.hn/positive
На факультете я на черной странице набираю пароль и логин. Потом пишу "mc" и открывается каталог работ(или файлов с и с++). Если надо запускать (компилировать) программу то пишу gcc (file name)
Если графический режим(Убунту использую на графическом) то: пишу startx открывается графический режим. Внизу справа бывает ярлык для компилятора, нажимаю, он открывается, набираю пароль и логин ... (а потом все так же).

kokto

Да, в терминале в той же директории, где компилируемый код.

lenok62

vugar-laptop:~$ make ./home/vugar/hello.cpp
make: *** No rule to make target `home/vugar/hello.cpp'. Stop.

kokto

Не слушай его! У тебя же не написан макрос в этой директории. Запускай просто gcc -o program program.c
После того как получишь бинарник program, запускать его там же набрав ./program :)

Ivan8209

K> make <progname>
У тебя программа называется "hello.cpp"?
Программа у тебя называется "hello,"
а "cpp" --- это техническая информация.

$ cd /tmp
$ echo 'main(void){return 0;}' > test.c
$ make test
cc -O2 -o test /tmp/test.c

---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Ivan8209

> Не слушай его!
Иди-ка ты лучше, займись более полезным делом,
а не учи пользователей дурному.
> У тебя же не написан макрос в этой директории.
Матчасть, например, подучи.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

kokto

Да, ты научишь хорошему :grin:

lenok62

Урааааааааа! Получилось! Всеееем спасибо!
Не слушай его! У тебя же не написан макрос в этой директории. Запускай просто gcc -o program program.c
После того как получишь бинарник program, запускать его там же набрав ./program :)
так сработало. по другому не пробовал.
$ cd /tmp $ echo 'main(void){return 0;}' > test.c $ make test cc -O2 -o test /tmp/test.c
спасибо за это! Увидев это я понял в чем ошибаюсь. Я забывал каталог открывать. набрал cd /tmp (файл кинул в tmp) а потом сделал то что сверху написано.
Я очень счастлив что наконец-то, Спасибо ВАМ.

Ivan8209

> спасибо за это! Увидев это я понял в чем ошибаюсь.
> Я забывал каталог открывать.
"Пейте водку, глистов не будет."

$ rm /tmp/test
$ cd
$ pwd
/home/user
$ make /tmp/test
cc -O2 -o /tmp/test /tmp/test.c

---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

lenok62

Пейте водку
Я не пью Но думаю такую ошибку не забуду)

lenok62

Помогите пожалуйста:
Должен запустить на Линуксе на терминале проект. Есть в папке файлы:
Makefile
micros.dir
RealStack.cpp
RealStack.h
RealStach.s
StackCalc.cpp
Кажется еще не научился)

okis

$ make
$ ./StackCalc

july


man make


man g++

lenok62

vugar-laptop:~$ make ./StackCalc
make: Nothing to be done for `StackCalc'
Вроде все правильно делал(каталог правильно выбран). У меня не установлены пакеты g++ , дело не в этом?

okis

Вроде я достаточно ясно написал. Если хочешь запустить несколько команд последовательно, делай это через && или вводи каждую отдельно:
$ make && ./StackCalc

lenok62

code:
man g++
vugar-laptop:~$ man g++
No manual entry for g++

july

g++ — компилятор C++, судя по расширению *.cpp — у тебя программа на C++. Ты говоришь что g++ у тебя не установлен. Логично предположить, что без g++ у тебя ничего не выйдет.
А что у тебя в Makefile содержится?

lenok62

Вроде я достаточно ясно написал. Если хочешь запустить несколько команд последовательно, делай это через && или вводи каждую отдельно:
$ make && ./StackCalc
vugar-laptop:~/StackCalc$ make && ./StackCalc
g++ -g -O0 -c StackCalc.cpp
make: g++: Command not found
make: *** [StackCalc.o] Error 127

okis

отлично, теперь
$ apt-get install g++

lenok62

Мне самому стало ясно)
А что у тебя в Makefile содержится?
CC = g++ $(CFLAGS)
CFLAGS = -g -O0
StackCalc: StackCalc.o RealStack.o
$(CC) -o StackCalc StackCalc.o RealStack.o -lm
StackCalc.o: StackCalc.cpp RealStack.h
$(CC) -c StackCalc.cpp
RealStack.o: RealStack.cpp RealStack.h
$(CC) -c RealStack.cpp
clean:
rm -f StackCalc *.o

lenok62

отлично, теперь
$ apt-get install g++
vugar-laptop:~/StackCalc$ apt-get install g++
E: Неверная операция instal
vugar-laptop:~/StackCalc$ sudo apt-get install g++
[sudo] password for vugar:
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  linux-headers-2.6.28-11 linux-headers-2.6.28-11-generic
Для их удаления используйте 'apt-get autoremove'.
Будут установлены следующие дополнительные пакеты:
  g++-4.3 libstdc++6-4.3-dev
Предлагаемые пакеты:
  g++-multilib g++-4.3-multilib gcc-4.3-doc libstdc++6-4.3-dbg
  libstdc++6-4.3-doc
НОВЫЕ пакеты, которые будут установлены:
  g++ g++-4.3 libstdc++6-4.3-dev
обновлено 0, установлено 3 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 5520kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 19,1MB.
Хотите продолжить [Д/н]? д
0% [Соединение с ru.archive.ubuntu.com (77.88.19.74)]^C
vugar-laptop:~/StackCalc$
///Завтра когда буду на вайфае сделаю это заново.

lenok62

Хотел сказать всем спасибо. Сегодня установил g++. Запустил все проекты, сделал изменения и ВСЕ сработало

Ivan8209

> CC = g++ $(CFLAGS)
Не делай такого.
Во-первых, CC и CXX предназначены для указания на программы,
_без_флагов_, для флагов используются CFLAGS, CPPFLAGS и CXXFLAGS.
Во-вторых, для приплюснутых сей используются CXX и CXXFLAGS,
а не CC и CFLAGS.
Подробнее:

$ more /usr/share/mk/sys.mk
$ info 'GNU Make' 'Implicit Rules' 'Implicit Variables'

---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
Оставить комментарий
Имя или ник:
Комментарий: