Сайт | Скачать | Видео | Wiki

Автор Тема: Компиляция нужной программы из исходников  (Прочитано 9266 раз)

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

Оффлайн oka-volga

  • Постоялец
  • ***
  • Сообщений: 149
  • Репутация: +3/-0
  • Автор темы
Есть нормальная инструкция: http://forum.puppyrus.org/index.php/topic,1334.0.html

За исключением того, что там рекомендуют скачать и установить devx_301.sfs модуль, который, на сколько я понимаю, давно устарел. Вместо него я скачал и установил: devx-13.12.pfs, конечно это элементарно, но мне как новичку в этом деле информацию приходится собирать по крупицам.

кстати скомпилировать мне нужно менеджер паролей: keepassx-0.4.3
И все бы было хорошо, но возникла ошибка, выкладываю последние строчки из терминала:

g++ -c -include ../build/keepassx -pipe -O2 -Wall -W -Wno-sign-compare -D_REENTRANT -DAUTOTYPE -DGLOBAL_AUTOTYPE -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/qt4/mkspecs/linux-g++ -I. -I/opt/qt4/include/QtCore -I/opt/qt4/include/QtCore -I/opt/qt4/include/QtGui -I/opt/qt4/include/QtGui -I/opt/qt4/include/QtXml -I/opt/qt4/include/QtXml -I/opt/qt4/include -I. -Ilib -Icrypto -Iplugins/interfaces -Iexport -Iimport -Idialogs -I../build/ui -I../build/moc -o ../build/random.o lib/random.cpp
lib/random.cpp: In function ‘void initStdRand()’:
lib/random.cpp:98:19: error: ‘getpid’ was not declared in this scope
make[1]: *** [../build/random.o] Ошибка 1
make[1]: Выход из каталога `/initrd/mnt/dev_save/Мои файлы/keepassx-0.4.3/src'
make: *** [sub-src-make_default] Ошибка 2


что это за getpid и это ошибка дистрибутива программы или у меня где то, что то не установлено?
Я к сожалению не понимаю?!

Конечно, какой нибудь добрый человек может скомпилировать и выложить, но мне бы хотелось самому научится, а то программ много, а скомпилированных для Pyppy мало!

И еще небольшое отступление от темы, может кто подскажет как сделать переключение раскладки как в современной винде:
alt+left_shift, а то мне заядлому виндоводу уже трудно переучиться на ctr+left_shift  :(

PuppyRus - 13.12

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34036
  • Репутация: +231/-0
    • PuppyRus-A
Re:Компиляция нужной программы из исходников
« Ответ #1 : 05 Февраль 2014, 17:46:56 »
Вы не написали главного - под каким дистрибутивом это делаете
devx к каждому дистру свой
как сделать переключение раскладки как в современной винде:
alt+left_shift, а то мне заядлому виндоводу уже трудно переучиться на ctr+left_shift  :(
http://forum.puppyrus.org/index.php/topic,12261.0.html

Оффлайн oka-volga

  • Постоялец
  • ***
  • Сообщений: 149
  • Репутация: +3/-0
  • Автор темы
Re:Компиляция нужной программы из исходников
« Ответ #2 : 05 Февраль 2014, 18:04:45 »
 :)
Хоть и виндовод но не все еще потеряно, дистрибутив: PuppyRus-Icewm-13.12, по этому devx-13.12.pfs
PuppyRus - 13.12

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Компиляция нужной программы из исходников
« Ответ #3 : 06 Февраль 2014, 02:10:49 »
oka-volga, Ну в таком случае вам придется еще осилить google в который надо вбить строку
"random.cpp:98:19: error: ‘getpid’ was not declared in this scope"

Первой же ссылкой получаем http://www.keepassx.org/forum/viewtopic.php?f=4&t=3177
В ответе видим что надо внести изменения в файл keepassx-0.4.3-cl/src/lib/random.cpp
знаком + помечены строки которые добавляются, знаком - строки которые удаляются.
Соответственно в файле random.cpp надо дописать #include <unistd.h> после строки #include "random.h"
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн oka-volga

  • Постоялец
  • ***
  • Сообщений: 149
  • Репутация: +3/-0
  • Автор темы
Re:Компиляция нужной программы из исходников
« Ответ #4 : 06 Февраль 2014, 02:15:14 »
 :o
Гугл конечно стоит начать изучать, просто я даже предположить не мог, что ошибка в ихнем дистрибутиве.
Спасибо!
PuppyRus - 13.12

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34036
  • Репутация: +231/-0
    • PuppyRus-A
Re:Компиляция нужной программы из исходников
« Ответ #5 : 06 Февраль 2014, 09:38:36 »
Компиляция keepassx была учебным экспериментом по компиляции или нужен был результат?
Если результат - http://pkgs.org/search/?query=keepassx&type=smart

Последнее время заметно увеличение интереса к qt. В PR(A) - это не необходимый модуль
Поэтому использовать его в PR(A) нерационально. 20мб по меркам PR(A) - много
Или уже мутить qt версию с подбором софта (а он есть). Хорошо бы для этого иметь qt программера. Насколько я знаю, писать на qt проще gtk. Кроме того c gtk сейчас не просто есть версия 2 и 3. Есть программы только под 2 и только 3
В PRA я прорабатывал тему qt. Подсобрал софта (все в репе) В целостную картину не сложилось
KDE тяжеловат. Razor полегче (посмотреть можно здесь). Вроде есть версия LXDE-qt...

Оффлайн oka-volga

  • Постоялец
  • ***
  • Сообщений: 149
  • Репутация: +3/-0
  • Автор темы
Re:Компиляция нужной программы из исходников
« Ответ #6 : 06 Февраль 2014, 11:59:38 »
Компиляция keepassx была учебным экспериментом по компиляции или нужен был результат?

Т.к. я начинающий linux(овод), соответственно задача является учебной, но и KeePassX мне очень нужен.
Кстати компиляция пока не удалась, вылезли дополнительные ошибки, разбираюсь.

Хотя есть на этом форуме уже готовый пакет: http://www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/puppyrus-a/pfs/keepassx-0.4.3-5-i686.pfs

Что касается Вашей ссылки:  http://pkgs.org/search/?query=keepassx&type=smart
И какой дистрибутив качать? Для Puppy 13.12 ?
И как устанавливать?

Второй Ваш абзац вообще ничего не понял, для меня набор непонятных слов, хотя нет общая мысль ясна : "Увеличился интерес к Qt".
« Последнее редактирование: 06 Февраль 2014, 13:00:23 от sfs »
PuppyRus - 13.12

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34036
  • Репутация: +231/-0
    • PuppyRus-A
Re:Компиляция нужной программы из исходников
« Ответ #7 : 06 Февраль 2014, 12:59:57 »
Компиляция - не для начинающих. Не имейте иллюзий что скомпилив keepass вы сможете скомпилить что угодно
Это уровень продвинутого пользователя или разработчика. Получаться начнет через полгода - год упорных занятий.

Готовый пакет под PRA. Он основан на arch-linux репозитории и имеет средства работы с ним. Готовый arch пакет был переконвертирован в модуль скриптом. Заняло это минуту

Вы используете PR - он собран из исходников и 100% к нему подойдут только его модули. На Pkgs.org их нет. Вот они. Если нужного модуля нет :
1. Скомпилить его из исходников (оптимально но сложно)
2. Попробовать перепаковать что подойтет из Pkgs.org
Для новичка оба варианта сложны. Научить этому за дни - невыполнимо. Проще найти тот дистр где все нужное Вам есть или использовать любой большой линукс где  есть вообще все.
« Последнее редактирование: 06 Февраль 2014, 13:02:04 от sfs »

Оффлайн oka-volga

  • Постоялец
  • ***
  • Сообщений: 149
  • Репутация: +3/-0
  • Автор темы
Re:Компиляция нужной программы из исходников
« Ответ #8 : 06 Февраль 2014, 14:29:30 »
sfs

я во многом с Вами согласен, но не во всем!
Конечно ОС это не мой профиль, но общее представление имею.
Я и есть разработчик, но больше специализируюсь по javascript & php.
А с такими вещами как Adobe AIR или Tinanium могу писать кроссплатформенно даже прикладные программы!

Это не первое мое знакомство с linux, это третья попытка!
Первые две попытки закончились полным удалением linux и возврату к windows.
Цитата
любой большой линукс
это уже практически тоже самое что windows, со всеми вытекающими, но windows  все равно удобней и стабильней, не вижу смысла переходить на большой linux.

Puppy другое дело! Загрузка меньше минуты, работает достаточно быстро, место практически не занимает, а программ мне не так уж и много надо, в общем, Puppy это то, что мне нужно. Если еще учесть как это просто подключить или отключить нужный пакет, еще бы их побольше было и главное, пакетов в репозирории уже куча, и где посмотреть их полное описание?
Типа заходишь в репозиторий, видишь isdhbgSJGBFSJbg-4.5.3  ??? ??? ??? и что это значит?! Я понимаю, что Вы наверняка знаете, что за пакеты там лежат и что содержат, а мне где взять данную инфу?

считаю, что вполне готов к компиляции программ из исходников.
Опять же повторюсь, нужную информацию приходится собирать по крупицам (складывается такое впечатление, что обладатели нужных знаний нехотят ими делится, видимо считая, что раз им эти знания достались с трудом, пусть и другие потрудятся), просто нереально прочитать весь данный форум со всем флудом, лирическими отступлениями и перекресными ссылками на другие форумы и материалы.


Что то я увлекся, теперь к делу:

Код
lpthread -lQtXml -lQtGui -lQtCore
/usr/bin/ld: cannot find -lXtst
error: collect2: ld returned 1 exit status

Я так понял нет библиотеки lXtst
И как я выяснил это X11 расширение

Подскажите где ее взять и главное как установить, может подходящий готовый модуль или пакет есть?
« Последнее редактирование: 06 Февраль 2014, 14:31:10 от oka-volga »
PuppyRus - 13.12

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Компиляция нужной программы из исходников
« Ответ #9 : 06 Февраль 2014, 15:01:45 »
пункт 1 ищем буквы xtst в репозитарии, в браузере есть поиск по содержимому страницы.
пункт 2 если в репозитарии нет можно качнуть исходники и собрать из исходников, и ничего страшного в этом нет, вас же не напрягает собирать конечную программу.
пункт 3 бывает что в системе есть библиотека но нет ее DEV части или наоборот. Поэтому можно сделать поиск без учета регистра по слову libxtst в каталогах /usr/lib /usr/local/lib /usr/X11R7/lib
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн oka-volga

  • Постоялец
  • ***
  • Сообщений: 149
  • Репутация: +3/-0
  • Автор темы
Re:Компиляция нужной программы из исходников
« Ответ #10 : 06 Февраль 2014, 15:36:53 »
Цитата
пункт 1 ищем буквы xtst в репозитарии, в браузере есть поиск по содержимому страницы.
Искал (ctrl+f)

Цитата
пункт 3 бывает что в системе есть библиотека но нет ее DEV части или наоборот. Поэтому можно сделать поиск без учета регистра по слову libxtst в каталогах /usr/lib /usr/local/lib /usr/X11R7/lib
Искал (find / -name "*xtst*" -print)

Цитата
пункт 2 если в репозитарии нет можно качнуть исходники и собрать из исходников, и ничего страшного в этом нет, вас же не напрягает собирать конечную программу.
Ненапрягает. А можно немного поподробней?
Если я правильно понимаю это делается через терминал, нужна какая то каманда на поиск и скачивание из какого то репрзитория? Точнее у меня нет информации, а у Вас?
PuppyRus - 13.12

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34036
  • Репутация: +231/-0
    • PuppyRus-A
Re:Компиляция нужной программы из исходников
« Ответ #11 : 06 Февраль 2014, 15:39:58 »
Puppy другое дело! Загрузка меньше минуты, работает достаточно быстро, место практически не занимает, а программ мне не так уж и много надо, в общем, Puppy это то, что мне нужно.
Занимаясь компиляцией Вы скоро поймете какой ценой это далось  :)
Типа заходишь в репозиторий, видишь isdhbgSJGBFSJbg-4.5.3  ??? ??? ??? и что это значит?! 1.
По названию проги описание можно получить на том же pkgs.org
По функционалу здесь или в гугле
У нас на такой функционал нет сил и средств  :'(
нужную информацию приходится собирать по крупицам (складывается такое впечатление, что обладатели нужных знаний нехотят ими делится
Не так просто это сделать. Кроме того уметь самому и уметь учить других - разные таланты

Оффлайн oka-volga

  • Постоялец
  • ***
  • Сообщений: 149
  • Репутация: +3/-0
  • Автор темы
Re:Компиляция нужной программы из исходников
« Ответ #12 : 06 Февраль 2014, 16:50:32 »
В общем,чё то я скачал с http://pkgs.org/archlinux/archlinux-extra-i686/libxtst-1.2.2-1-i686.pkg.tar.xz.html
Не уверен, что это то, что нужно?
вот такого вида: libxtst-1.2.2-1-i686.pkg.tar.tar

Правда там .xz указано, а скачалось .tar? Но это дело не меняет, я незнаю как это установить?!
PuppyRus - 13.12

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Компиляция нужной программы из исходников
« Ответ #13 : 06 Февраль 2014, 17:10:45 »
Цитата
Правда там .xz указано, а скачалось .tar?
умный браузер сам определил расширение, придется переименовать вручную

В PuppyRus конкретно libXtst.so находится в /usr/X11R7/lib компилировать ничего ненадо. А то что линковщик не может найти библиотеку, говорит о том что он не просматривает  /usr/X11R7/lib , в принципе на этапе компиляции можно библиотеку перенести в  /usr/lib либо указать линковщику что надо искать библиотеки еще и в  /usr/X11R7/lib (как это сделать я незнаю, везде бывает по разному прописывается).

Цитата
Если я правильно понимаю это делается через терминал
браузер и гугл не более.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн oka-volga

  • Постоялец
  • ***
  • Сообщений: 149
  • Репутация: +3/-0
  • Автор темы
Re:Компиляция нужной программы из исходников
« Ответ #14 : 06 Февраль 2014, 18:44:20 »
 ???

распаковал архив и расставал все из архива по местам.

и.....


Код
Xtst -lpthread -lQtXml -lQtGui -lQtCore
/usr/bin/ld: cannot find -lQtXml
/usr/bin/ld: cannot find -lQtGui
/usr/bin/ld: cannot find -lQtCore
collect2: error: ld returned 1 exit status
make[1]: *** [../bin/keepassx] Ошибка 1
make[1]: Выход из каталога `/initrd/mnt/dev_save/my_projects/keepassx-0.4.3/src'
make: *** [sub-src-make_default] Ошибка 2

Я так понимаю не находятся библиотеки lQtXml, lQtGui, lQtCore

Странно, но qt-4.8.2-i486.pfs подключен и содержит данные библиотеки!
Запарился уже? Какие будут подсказки?
PuppyRus - 13.12