On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
PHILOSOFF
Координатор переводчиков




Зарегистрирован: 06.09.07
Откуда: Зеленоград
Репутация: 1
ссылка на сообщение  Отправлено: 11.09.07 22:23. Заголовок: Компиляция в Puppy


PuppyLinux : Компилирование

Чтобы преобразовать Puppy в среду компилятора, вы должны скачать компилируемый дополнительный файл, который переписывается в каждой новой версии Puppy, который вы используете, например для Puppy 2.14 devx_214.sfs. Пока необходимые файлы качаются, читайте продолжение ниже....

Качать тут:
Старые версии devx
devx файл для Puppy 2.15CE - Если не работает, проверьте Это зеркало Puppy215Downloads.
devx файл для Puppy 2.14
devx файлы для Puppy 2.10 и более ранние
devx файлы для Puppy 2.01 и 2.02
devx файл для Puppy 2.00 и MD5 файл
usr_devx.sfs файл для Puppy 1.x
devx файл для Puppy 2.01 и оно же зеркало
devx файлы для новых дистрибов Puppy - зеркало (ftp)


Для каждого типа установки Puppy (загрузочный CD, экономная установка на диск), сохраняет файл в /mnt/home (если такого файла не существует тогда, вероятно, у вас идёт полная загрузка с жёсткого диска, читайте об этом ниже). Это ваш личный файл настроек, например pup_save.2fs или pup001. Теперь, если вы используете Puppy 2.x и ничего не сохранили, тогда вы должны его создать, чтобы распознать devx файл. Теперь просто перезагрузитесь в Puppy, чтобы запустить компилирование.

Но для установки полная/опция 2/обычная установка на жёсткий диск в логический диск Linux с Puppy 2.x, следуйте инструкции внизу Этой страницы.
см. также: http://www.murga-linux.com/puppy/viewtopic.php?%20t=16780


Как протестить работу, когда devx установлен

Теперь, когда Вы установили нужный devx модуль, пришло время проверять, чтобы удостовериться, работает ли он.
Быстрая поверка
Откройте rxvt и напечатайте 'cc'
Если он говорит 'команда не найдена' тогда, вы не установили все должным образом.

Более надёжная проверка.
Сохраните следующий файл как test.c
Используя Geany, попробуйте прокомпилировать

/* Программа C Примера */

int main()

{ int i;
for (i = 0; i < 50000; i++)
{
printf ("%d",i);
printf (" Puppy is Great\n");
}
return 0;
}


в этом же самом каталоге
откройте терминал (terminal) (Правый щелчок в открытой папке/каталоге с Rox 2.5/Window/terminal here)
и напечатайте

gcc test.c -o test

эта команда создаёт запускаемый файл, названный "test"
команда

./test

выполнит его...

Здесь находятся мануалы на эту тему.
http://members.cox.net/midian/articles/ansic1.htm

Что такое Компиляция?
В двух словах: Компиляция - это процесс, в ходе которого программа, написанная на понятном человеку(программисту) языке, преобразуется в исполняемые компьютером бинарные коды.
(Примечание: для более подробного описания смотри http://en.wikipedia.org/wiki/Compile)

compiling...

Вы можете написать программы на ассемблере, который почти "совершенен" в глазах компьютера, очень близко к двоичному коду.

lda 02
sta #c000
lda #c001
cmp #c000
bne d000

Но это является трудным в понимании. В C, он мог бы выглядеть следующим образом:
a=2;
b=c;
if (a != b){
my_subroutine();
}

Это проще для понимания (язык высокого уровня), простое сравнение двух чисел, и в зависимости от результата (если они являются различными), подпрограмма выполняется.


Если Вы откроете полученный "код" в hexeditor, то вы увидете только двоичный код, значения от 0 до 255 "дико пепремешанный". Компьютер может понять этот код, но человек не может. (А если всетаки сможете, значит вы не человек прим. перев.)


Почему программы компилирования
Иногда бывает так, что программа или драйвер, в котором вы нуждаетесь, не доступны для Puppy.
Если это приложение или драйвер будут с открытым исходом кодом, то у вас будет доступ к исходному тексту, чтобы компилировать и дописать нужные строки. В наши дни у большинства приложений с открытым исходным кодом есть очень простой способ компилировать и устанавливать от исходного текста (исходники).


Как компилировать программы

Puppy 2
Если Вы запускаете с liveCD или frugal/poor-man's/option-1/coexist install, devx файл находится в /mnt/home, в том же самом каталоге как pup_save.3fs

Если у вас полная установка с жёсткого диска, то вы только должны поместить его в /root, затем использовать опцию 2 full-hd install (полная установка).

Теперь, если у вас много-сеансовая система, я не знаю точно, как тут это работает. Я делаю так же как при опции 2.

Если не работает, попробуйте скопировать в / вместо /root. Как в фактическом корне, не /root.


Предпосылки:
Puppy liveCD не включает в себя средств для компиляции. Для этого вы нуждаетесь в файле devx_201.sfs. [Обратите внимание, что Puppy 2.00 требует devx_200.sfs, Puppy 2.01 требует devx_201.sfs, и т.д. Это - соглашение об именах для всего дополнительного пространства sqaushfs файлы, который позволяет Puppy распознавать их. Puppy 1 использует usr_devx.sfs, который не следует за этим соглашением.]
devx_201.sfs не стандартное требование в Linux. Это - только умный ход Барри (Barry) (создатель Puppy) предложивший упаковать все инструментальные средства разработки для простоты установки. Этот пакет включает инструментальные средства, библиотеки и файлы, требуемые для компиляции приложений.

Чтобы установить usr_devx.sfs делают следующее:
Искать к этой странице разгрузки и скачайте devx_201.sfs ( http://www.puppyos.com/test/ ) или ( http://www.puppylinux.org/user/downloads.php?%20cat_id=12)
Скопируйте загруженный файл в тоже самое место, где ваш pupxxx.sfs файл расположен (например pup001.sfs для Puppy 1, pup_200.sfs для Puppy 2.00, pup_201.sfs для Puppy 2.01...). Или при полной инсталляции Puppy на жеский диска скопируйте файл в / папку. Или в /root если грузитесь с дискка (liveCD).
Перезагрузите Puppy.

или как вам такое объяснение


Puppy имеет gcc make/compile/link suite, доступная в файловой системой. С помощью их компилируются и устанавливаются большинство пакетов "./configure", "make", "make install".

Среды разработки для Puppy 2.00 и 1.xx доступны в http://www.puppylinux.org/user/downloads.php?%20cat_id=12. devx_201.sfs в http://www.puppyos.com/test/ (или на моей странице зеркала: http://s3.amazonaws.com/puppy/index.html )

Чтобы использовать их, поместите devx_xxx.sfs или usr_devx.sfs файл где ваш pup_save файл находится, и перезагрузитесь.

У вашего приложения могут быть другие зависимости. Удостоверьтесь, что те зависимости присутствуют в Puppy или что вы компилируете их прежде, чем попытаться компилировать приложение. ldd команда полезна здесь. В поисковике Google напишите 'man ldd linux'. Команда доступна в Puppy, хотя в документации о команде ldd ничего нету. Поскольку эта команда отображает список всех требуемых пакетов, и вы, вероятно, больше всего интересуетесь только те, которые отсутствуют, пробуете
ldd, `which mplayer` |grep not
Отметьте, что ` с обоих сторон mplayer обратные кавычки выше кнопки позиции табуляции, не регулярные единственные кавычки. Это говорит системе выполнять ldd команду на результатах, таким образом вы не должны сначала определить местонахождение mplayer (в этом примере - заменяют mplayer программой, Вы желаете проверить зависимости), результаты которого являются канальными через grep команду, которая только пропускает результаты, содержащие слово 'not'
Пример с результатами:
ldd `which mplayer` |grep not
libsmbclient.so.0 => not found
Конечно вы можете написать так :
ldd /etc/local/bin/mplayer
замените ваше приложение и его путь /etc/local/bin/mplayer, и просматривать список придётся вручную (спасибо за MU он же Lobster, который указал на эту простую уловку... Мне нравится быть ленивым). (наш человек прим. перев.)


Компилирование:

Скачайте приложения или драйвера, которые вам необходимы:
Рекомендуется брать финальную(стабильную) версию пакета.
Распакуйте файлы из архива в нужное место
Если не все файлы были упакованы, то используйте соответствующую команду, чтобы извлечь их.
Желательно извлечь файлы в новой или пустой папке.
например.
# mkdir /root/src
# mkdir /root/src/packageName
Затем распакуйте архив в эту же папку
# cd /root/src/packageName
# tar -xvzf packageName.tar.gz
ЧИТАЙТЕ ДОКУМЕНТАЦИЮ И README ФАЙЛЫ ВКЛЮЧЁННЫЕ В АРХИВ !!

Откройте терминал (например rxvt) и выполните следующее:
Перейдите в директорию, где находятся распакованные пакеты.Например
cd /root/src/<appName>
Следуйте инструкциям, включённым в пакеты (README и файлы установки)


.... Если Вы столкнулись с проблемой
1. Помните о INSTALL & README?
2. Если вы не нашли нужную информацию, попробуйте погуглить (поисковик Google вам в помощь)
3. Если и тут облом, и у вас нет никаких идей, Создайте новую тему на форуме и задайте ваш вопрос.
4. Если вы получили ответ и не поняли его смысла, или Вы не получаете ответа, пожалуйста опишите ТОЧНО какие ошибки возникают, также версию в которой вы пытаетесь компилировать ,основные шаги. И будте терпеливы.
5. ПОЖАЛУЙСТА НЕ ГОВОРИТЕ, что "Я НЕ МОГУ КОМПИЛИРОВАТЬ XYZ", "ОН НЕ РАБОТАЕТ".
6. Кто-то (кроме меня) сделал предложение, чтобы мы должны создать wiki о том, что мы можем компилировать в Puppy и что мы не можем.


Оптимизация
Эти небольшие детали не относятся к категории "компилирование для Puppy", но это все равно они довольно важны:

Когда Вы компилируете для Puppy прежде, чем вводить make(но после команды ./configure, если это часть стадии компилирования), вы должны открыть исполняемый файл и найти строку, которая устанавливающего флажки C (обычно CFLAGS =....).

если строка включает -g, удалим это и видно, сколько имеется свободного пространства. От изменения этого параметра с программой НИЧЕГО НЕ случится.

Есть другой путь к оптимизации, которая может быть. Я нахожу большое количество программ использующих -O2 по умолчанию, изменяя это на - Os что позволит сделать менее объёмистую программу. В теории, изменяя параметры настройки оптимизатора, не должен изменить поведение вашей программы, однако возможно, что у этого могут быть тонкие побочные эффекты, которые не проверял программист.


Спасибо: 0 
Профиль
Ответов - 4 [только новые]


melviX
Координатор проекта




Настроение: ЛинуХовое!
Зарегистрирован: 02.09.07
Откуда: Lithuania, Vilnius
Репутация: 0
ссылка на сообщение  Отправлено: 12.09.07 09:37. Заголовок: Re:


+1 без комментариев

Free software for free people Спасибо: 0 
Профиль
zulman
Координатор создания сайта




Зарегистрирован: 11.09.07
Откуда: Россия, Глазов
Репутация: 0
ссылка на сообщение  Отправлено: 12.09.07 13:36. Заголовок: Re:


Молодца, классный перевод, но там ты специально обще образовательынй кусок о теории компиляции убрал или случайно забыл? Если случайно то вот перевод(следует перед "compiling..."):

Что такое Компиляция?
В двух словах: Компиляция - это процесс, в ходе которого программа, написанная на понятном человеку(программисту) языке, преобразуется в исполняемые компьютером бинарные коды.
(Примечание: для более подоробного описания смотри http://en.wikipedia.org/wiki/Compile)

Linux for human beings Спасибо: 0 
Профиль
melviX
Координатор проекта




Настроение: ЛинуХовое!
Зарегистрирован: 02.09.07
Откуда: Lithuania, Vilnius
Репутация: 0
ссылка на сообщение  Отправлено: 12.09.07 14:34. Заголовок: Re:


Допиши, если хочешь. Чем больше вариантов, тем больше свобода выбора.
Истина где-то рядом

Free software for free people Спасибо: 0 
Профиль
PHILOSOFF
Координатор переводчиков




Зарегистрирован: 06.09.07
Откуда: Зеленоград
Репутация: 1
ссылка на сообщение  Отправлено: 12.09.07 16:26. Заголовок: Re:


Я специально пропустил эту часть. Посчитал ее не актуальной тут.
Ну в принципе можно и добавить, спасибо за помощь.

Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 17
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет