sanctus
написал 6 мая 2006 года в 14:30 (927 просмотров)
Ведет себя
неопределенно; открыл 6 тем в форуме, оставил 23 комментария на сайте.
Как я уже замучился с компилятором.Первый раз сел за linux вчера.Тыком пыком я понял что мне нужен компилятор gcc.Я его скачивал(ftp://gd.tuwien.ac.at/gnu/gcc/releases/gcc-3.3.1/ вот этот -gcc-3.3.1.tar.gz).Почитал хелп.не помог.Народ помогите поставить компилятор)Я не хочу под винду возвращаться)
// Тему переместил(а) fly4life из форума «UNIX FAQ: вопросы по UNIX/Linux».
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Дистрибутив какой?
Под него возьми готовый собранный пакет и установи средствами пакетного менеджера.
у меня Linux Ubuntu .Можешь дать сылку на этот собранный пакет?И где это средство пакетного менед?Спасибо за внимание/
А что насчет команды:
apt-get install gcc
?
sanctus@MZ:~$ apt-get install gcc
E: Не могу открыть файл блокировки /var/lib/dpkg/lock — open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
sanctus@MZ:~$
Я уже стоко всего прочитал.Но ничего нужного не нашел.Блин.=(
А теперь то же самое под root’ом. Зайти под него можно командой su.
Вообще, не зная таких вещей, неразумно сначала лезть на форум. Надо книжки почитать…
Извиняюсь за мою глупость.Исправлюсь
sanctus@MZ:~$ su
Password:
su: Authentication failure
Извините.
sanctus@MZ:~$
пасс какой?тАкойже как и к обычному?
Для того, чтобы исправиться, есть http://www.ubuntu.com/support/faq?action=show&redirect=FAQ
Там пишут, что: «The root account is disabled when you first install Ubuntu. The first user created during the installation has administrative rights on the system, and can run programs as root with sudo, using only their normal user password.»
Т.е.:
sudo apt-get install gcc
Спасиб большое.Уже многое что сделал помимо gcc.Вот толкько одно меня сейчас глушит/Как войти под root?команда su требует пароль для входа под root
разобрался
У меня тоже вопрос по gcc.
Примерно два года назад я познакомился с Linux.Конкретно полазив по интернету я
нашел много всякой документации по Линуксу.Я понял,что для разработки программ
есть среда GNU Emacs.А чтобы писать программы на C и C++ используется компилятор GCC.У меня дистрибутив Linux RedHat9.0 и GCC там уже поставляется.
Начал искать в интернете как компилировать программы при помощи GCC.
Зашел на gcc.gnu.org почитал мануал,но там никаких примеров,как нужно компилировать.Начал искать по сайтам.И самое интересное,что команды,которые были написаны на этих сайтах,мой gcc непонимает.Перепробовал кучу всяких команд
и их вариаций,а всё беспполезно.Вот пример нескольких из них:
gcc -new.c -o new
-c new.c -o.new
В общем полно всяких вариантов в интернете видел.
Ну а как же компилируете Вы ?
p.s.
Я не чайник.
Да хотя бы просто:
gcc file.c
?
Будет исполняемый файл a.out.
Ну, или:
gcc -o file.bin file.c
Тогда уже file.bin.
А вообще странно вы как-то читали (или что-то странное читали?)… Попробуйте `man gcc`.
man gcc я набирал,но GNU Emacs жалуется,что незнает директорию нахождения мануала.
А странные вещи я читал на сайтах,посвященных программированию под Linux.
Сейчас попробую скомпилировать так,как Вы посоветовали.
GNU Emacs мне пишет:
/bin/bash :line1:gcc :command not found
И вот так он мне все время пишет.
1) GNU emacs тут при чем? Вводим это в обычной консоли.
2) А откуда у вас уверенность, что gcc установлен?
whereis gcc
?
А что ты делаешь с Emacs что он тебе такое пишет? Где имеено в Emacs ты это набираешь?
if you has my-file.c opened in emacs buffer, then type `f10-t-c’. than in minibuffer you should have `make my-file’. now type `ret' and work done.
or, alternatively, type in shell `make my-file’. if `404. gcc not found’ — install gcc, and be happy.
Оказалось,что в Linux RedHat9.0 нужно устанавливать:GCC,SDL и многое другое,через менеджер установки и удаления пакетов(я думал,что при установке дистрибутива GCC сразу-же устанавливается).
После установки компилятора и библиотек,я решил проверить их работу.Первым начал проверять работу компилятора.Набрал программу «Hello world» и скомпилировал.После компиляции запустил — программа работала.
Потом решил проверить работу библиотеки SDL.Взял пример testsprite.c,который прилагается к исходникам библиотеки SDL.Естественно,что вместо #include «SDL.h»
я написал #include .
Начал компилировать,а компилятор мне говорит,что незнает где находиться данный файл или дериктория.Хотя в /usr/include/SDL есть и SDL.h и все остальные файлы библиотеки с расширением h.Тогда я взял эти файлы и скопировал их в дерикторию с программой.Начал компилировать.Все недостающие файлы компилятор нашел.Начал создавать обьектные файлы(создал несколько штук),а потом пишет:
:undefined reference to 'SDL_GetTicks'
collect2: ld returned exit status
В чем я делаю ошибки ?
И как только народ программирует в Linux без хлопот.
> :undefined reference to 'SDL_GetTicks'
> collect2: ld returned exit status
А куда сами библиотеки установились? После установки, вероятно, надо прогнать:
ldconfig
При этом путь к библиотекам SDL (ну, например, /usr/lib) должен присутствовать в /etc/ld.so.conf
Библиотеки установлены в дерикторию /usr/lib
Но в файле ld.so.conf этого пути нет.
Вот немогу никак понять- библиотеки установились и они нахолятся в нужных дерикториях,а конфиги непрописались.
Как устанавливали SDl вы ?
И еще вопрос.Для чего нужны файлы makefile.in и makefile.am ?(они во всех библиотеках есть)
Если его там нет, то добавьте. И выполните:
ldconfig
Или, может, это в RH будет как-нибудь типа /sbin/ldconfig (/usr/sbin/ldconfig …).
SDL мы не устанавливали, а если и будем, за нас все хорошо сделает apt-get (Debian).
Про GNU make хорошо тут пишут: http://www.gnu.org/software/make/manual/make.html
Вообще же, наверное, все-таки хорошо сначала бы купить книжку, что ли, а потом начинать попытки программировать.
какая груда вопросов :)
варианта два, либо `#include ', либо `gcc -I/usr/include/SDL …' (или, модификация второго варианта: `export CFLAGS=-I/usr/include/SDL' и `make’).
в генту кучей команд `emerge sdl-…’, а в слаке, я помниться ничего окромя `./configure && make && make install' не признавал, и проблем с отсутствующими хедерами, или выяснениеми на сколько ебилдов разбили sdl не имел. Правда с зависимостями возиться приходилось…
это для скрипта configure — он из них делает Makefile. Не заморачивайся, это просто для того, чтобы на каждую систему свой Makefile был. А что такое Makefile — Шуруп сказал где искать ответ на этот вопрос.
ну как… система поставлена, настроена. в ~/.bash_profile записаны CFLAGS и CXXFLAGS, LDFLAGS, плюс всякие emacs’ы, gdb, и прочие прелести жизни.
Надо просто один раз разобраться, а потом действительно удобно.
не дзенский путь. :)
Да и не встречал я книжек на тему: как заставить работать cc+ld+make. Правда и не искал.
Только вот в ручную прописывать RH9 не даёт.
Самое странное,что даже пот root-ом мои права и возможности ограничены.
Например,я немогу удалять(да и вообще модифицировать) файлы скопированные с других носителей(диски,дискеты).Изменять можно только те файлы,которые созданы в RH9.
Может стоит попробовать
gcc testdsl.c `sdl11-config --libs --cflags` -o testsdl
Раз уж библиотека нехочет устанавливаться,тоя решил пойти по другому пути.
У меня есть исходники библиотеки SDL.Где находяться файлы с расширением .h я прописал вручную.А вот как быть с исходниками библиотеки,ведь они лежат в разных папках(что касается аудио в одной,видео в другой и т.д.) ?
Пробовал делать через -I,-B,но толи не так делал,толи это неправильный путь к решению проблемы.
Я думаю пора тему переносить в «Без комментариев…»
Может все-таки книжки почитаешь? Метод тыка хорош, но только при наличии хорошего представления о предмете и отсутствии документации. Во всех остальных случаях лучше читать документацию. Попробуй вот это для начала: http://www.linux.org.ru/books/linstall/linstall.html
Скачал с сайта www.libsdl.org последнюю версию библиотеки SDL.
Набрал в командной строке /home/…/configure; make; make install
Библиотека установилась.Теперь в программах gcc находит заголовки типа и т.д.
После установки библиотеки SDL у меня появилась папка …/src в которой находятся другие папки содержащие объектные файлы.
Вопрос.Как производить линковку,ведь файлы находятся в разных папках и общее число файлов около полусотни ?
(набирать вручную все пути к файлам это не дело)
Читал документацию(с разных сайтов),но ответа на этот вопрос ненашел.
И еще вопрос.Что за файл такой SDL_ttf.h ?
У меня в библиотеке SDL его нет,а без него программы эсдиэловские не работают(некоторые).
Ыыы… убейте меня! А банально установить пакет с SDL ты не мог что ли?
Когда в чем-то разберешся,то это становиться понятным(элементарным).
Я раньше понять никак немог- каким образом командами make make install(я прямо так и набирал) устанавливаются программы и исходники.Только потом догадался как надо правильно команды писать.
Честно говоря,в Линуксе много документации без примеров(команды описывают,а примеров не показывают).
Всетаки мне хотелось бы получить ответ по теме линковка(предыдущий пост).
Ну вот это глянь http://subscribe.ru/archive/comp.soft.prog.linux/200202/21174837.html Но лучше все же сделать что я тебе раньше писал: изучить идеологию построения *nix систем, тогда понятно будет что как и почему устроено.
metal,большое тебе спасибо!!!
Я теперь знаю в каком направлении копать нужно,а то раньше не то искал.