Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [HOWTO] [Wiki] Как компилить  (Прочитано 369528 раз)

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

Оффлайн SeaJey

  • Активист
  • *
  • Сообщений: 770
  • Electronic Knight
    • Просмотр профиля
Re: Как компилить
« Ответ #150 : 17 Октября 2007, 21:23:44 »
Цитировать
Мне интересен другой вопрос, в ubuntu для компиляции все программы стоят по умолчанию или чтото надо добавлять, и если надо то что конкретно?     

И весьма прилично качать придётся. Хидеры ядра, dev-пакеты иксов, гнома, кде и т.д.
Перечитай первую страницу темы.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Как компилить
« Ответ #151 : 19 Октября 2007, 08:44:23 »
Цитировать
Мне интересен другой вопрос, в ubuntu для компиляции все программы стоят по умолчанию или чтото надо добавлять, и если надо то что конкретно?     

И весьма прилично качать придётся. Хидеры ядра, dev-пакеты иксов, гнома, кде и т.д.
Перечитай первую страницу темы.

Базовый пакет лежит целиком на дистрибутивном диске. На лив СД. так что ничего страшного.
Рановато ему с графикой мучаться. А если сильно неймется то набор разработчика Qt не так уж много потянет.

Оффлайн Sinter

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Как компилить
« Ответ #152 : 30 Октября 2007, 07:24:53 »
в чем может быть проблема?
sinter@ubuntu:~/download/supertux-0.1.3$ make
Making all in src
make[1]: Entering directory `/home/sinter/download/supertux-0.1.3/src'
g++ -DPACKAGE_NAME=\"SuperTux\" -DPACKAGE_TARNAME=\"supertux\" -DPACKAGE_VERSION=\"0.1.3\" -DPACKAGE_STRING=\"SuperTux\ 0.1.3\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"supertux\" -DVERSION=\"0.1.3\" -DHAVE_DIRENT_H=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBSDL_MIXER=1 -DHAVE_LIBSDL_IMAGE=1 -DHAVE_PTHREAD=1 -DHAVE_LIBZ=1 -DHAVE_MKDIR=1 -DHAVE_STRDUP=1 -DHAVE_STRSTR=1 -I.     -g -O2 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT  -DDATA_PREFIX='"/usr/local/share/supertux"' -MT badguy.o -MD -MP -MF .deps/badguy.Tpo -c -o badguy.o badguy.cpp
menu.h:210: ошибка: extra qualification ‘Menu::’ on member ‘get_controlfield_key_into_input’
make[1]: *** [badguy.o] Ошибка 1
make[1]: Leaving directory `/home/sinter/download/supertux-0.1.3/src'
make: *** [all-recursive] Ошибка 1

Thread

  • Гость
Re: Как компилить
« Ответ #153 : 30 Октября 2007, 09:15:55 »
Может, сначала стоит прочитать собственный текст? Элемент get_controlfield_key_into_input не принадлежит классу или неймспейсу Menu.

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Как компилить
« Ответ #154 : 30 Октября 2007, 12:55:13 »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Как компилить
« Ответ #155 : 31 Октября 2007, 18:14:09 »

Оффлайн azlk

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Как компилить
« Ответ #156 : 01 Ноября 2007, 09:39:56 »
Помогите разобраться, пожалуйста!
Уже, наверное, второй месяц периодически берусь за эту проблему, но ничего не получается, явно тут я чего-то не знаю...
Проблема следующая - компилирую Firefox 1.5.0.12 из исходников, все время вылезает ошибка.
С самого начала объясню, зачем я это делаю, чтобы мне никто не пытался советовать поставить Firefox 2,3 или scrapbook - дело в том, что эта версия - 1.5.0.12 - последняя версия Firefox, которая корректно умеет открывать html файлы с картинками С РУССКИМИ именами и сохраненные в папках, названных КИРИЛЛИЦЕЙ. Всем, кто с этим сталкивался, давно известно, что это старый баг, до сих пор в Мозиле не исправленный. И вообще непонятно, будет ли он когда-либо исправлен...похоже, проблемы кириллической части мира не сильно волнуют разработчиков Мозилы.
Scrapbook мне и не нравится - неудобен он - и не подходит - так как у меня очень большое количество .html файлов с картинками УЖЕ лежат на диске и в довольно сложной структуре вложенных папок, так что переименовывать все это просто не представляется возможным.

Собственно проблема такая: в конце компиляции make выдает ошибку:
-----------/кусок лога:/-------------------
nsSpecialSystemDirectory.cpp:(.text+0x379): undefined reference to `nsHashtable::Get(nsHashKey*)'
nsSpecialSystemDirectory.cpp:(.text+0x43d): undefined reference to `nsHashtable::Get(nsHashKey*)'
nsSpecialSystemDirectory.cpp:(.text+0x45d): undefined reference to `nsHashtable::Get(nsHashKey*)'
nsSpecialSystemDirectory.cpp:(.text+0x4c0): undefined reference to `nsHashtable::Get(nsHashKey*)'
nsSpecialSystemDirectory.o: In function `SystemDirectoriesKey::~SystemDirectoriesKey()':
nsSpecialSystemDirectory.cpp:(.text._ZN20SystemDirectoriesKeyD0Ev[SystemDirectoriesKey::~SystemDirectoriesKey()]+0x26): undefined reference to `nsHashKey::~nsHashKey()'
nsSpecialSystemDirectory.o: In function `SystemDirectoriesKey::~SystemDirectoriesKey()':
nsSpecialSystemDirectory.cpp:(.text._ZN20SystemDirectoriesKeyD1Ev[SystemDirectoriesKey::~SystemDirectoriesKey()]+0x21): undefined reference to `nsHashKey::~nsHashKey()'
nsSpecialSystemDirectory.o:(.data.rel.ro._ZTV20SystemDirectoriesKey[vtable for SystemDirectoriesKey]+0x1c): undefined reference to `nsHashKey::Write(nsIObjectOutputStream*) const'
/usr/bin/ld: libxpcom_compat.so: hidden symbol `nsHashtable::Get(nsHashKey*)' isn't defined
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: выполнение ld завершилось с кодом возврата 1
make[2]: *** [libxpcom_compat.so] Ошибка 1
make[2]: Leaving directory `/root/Desktop/mozilla/ff-opt-static/xpcom/obsolete'
make[1]: *** [tier_2] Ошибка 2
make[1]: Leaving directory `/root/Desktop/mozilla/ff-opt-static'
make: *** [default] Ошибка 2
root@A-buntu:~/Desktop/mozilla/ff-opt-static# ~/Desktop/mozilla/configure
----------------///-----------
Очень внимательно перечитывал раз тридцать все требования к компиляции Firefox-a с их сайта, поэтому вряд ли можно заподозрить, что я что-то не так сделал?..хотя кто знает...
Они рекомендуют создать конфигурационный файл .mozconfig, в котором и прописывать нужные тебе опции, я так и сделал:

.mozconfig:
-----------------///----------------------
# Mozilla config
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-static
. $topsrcdir/browser/config/mozconfig

ac_add_options --enable-optimize=-O2
ac_add_options --disable-debug
ac_add_options --with-system-zlib
ac_add_options --with-system-png
ac_add_options --with-system-jpeg
ac_add_options --enable-system-cairo
ac_add_options --enable-canvas
ac_add_options --enable-strip
ac_add_options --disable-tests
ac_add_options --disable-installer
ac_add_options --disable-accessibility
ac_add_options --enable-svg
ac_add_options --with-system-nspr
ac_add_options --with-system-nss

ac_add_options --disable-javaxpcom
ac_add_options --disable-xpcom
ac_add_options --disable-xul
ac_add_options --disable-libxul
ac_add_options --disable-ldap
ac_add_options --disable-crypto
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-xft
ac_add_options --enable-static
ac_add_options --disable-shared
ac_add_options --with-x
ac_add_options --disable-postscript
ac_add_options --disable-jsd
ac_add_options --disable-jsloader
ac_add_options --disable-composer
ac_add_options --disable-xtf
ac_add_options --disable-mathml
ac_add_options --disable-updater
ac_add_options --enable-ui-locale=ru-RU
ac_add_options --disable-mailnews
ac_add_options --enable-pango
-------------------------///---------------------------
Но, на самом деле эти опции никак не влияют на результат - что бы я там ни включал или отключал - все заканчивается вышеописанной ошибкой... Даже если вообще БЕЗ .mozconfig запускать - то же самое!
Причем, что интересно - на Дебиан у меня характер ошибки был немного другой, хотя тоже связанный с xpcom:
------------//---------------------
collect2: выполнение ld завершилось с кодом возврата 1
make[2]: *** [regxpcom] Ошибка 1
make[2]: Leaving directory `/root/Desktop/mozilla/ff-opt-static/xpcom/obsolete'
make[1]: *** [tier_2] Ошибка 2
-------------------//--------------------------
Я не могу понять - я же ведь в опциях вовсе отключаю xpcom - а он на это чихает? Или что-то еще я упускаю?
И потом - почему  "[tier_2]"? (см. чуть выше) Ведь у них же самих написано, что Firefox на платформе GNU/Linux - это tier1 !!....

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Как компилить
« Ответ #157 : 01 Ноября 2007, 11:59:17 »
попробуй собрать отсюда http://packages.ubuntu.com/dapper/web/firefox
скачиваешь три файла
[dsc] [firefox_1.5.dfsg+1.5.0.14~prepatch071011b.orig.tar.gz] [firefox_1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1.diff.gz]
затем dpkg-source -x ./firefox_1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1.dsc
cd firefox-1.5.dfsg+1.5.0.14~prepatch071011b
debuild -r fakeroot
подробнее тут https://forum.ubuntu.ru/index.php?topic=11609.0
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн azlk

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Как компилить
« Ответ #158 : 01 Ноября 2007, 17:05:29 »
Денис, спасибо, скачал пакеты, начал ставить, выяснилось, что не хватает еще кучи всего, поставил эту кучу, сейчас компилируется. Чего-то подозрительно долго компилируется....уже час, наверное...
Я, наверное, избаловался на сырцах от Мозилы - несколько секунд, ну, минута...до ошибки :-)
Правда, я, прочитав Вашу статью по ссылке, не стал делать все, как там написано, ибо не совсем понял, к чему относится мой случай - "в репозитории есть пакет предыдущей версии", наверное?...
Интересно, получится или нет? А если получится, то тогда еще интереснее - почему же из исходников производителя не собирается, а пропатченные или каким-то образом "специально собранные" девелоперами убунты исходники собираются в пакет???... Загадка....
Вообще, один мой друг, программист, когда я пожаловался ему, как все запутано и запущено в Линуксе, сказал, что ничего удивительного, так как код системы пишет огромное количество никак не скоординированных (ну разве что LSB как-то позволяет придерживаться стандартов) людей, и что программирование - это вообще болото, как и весь остальной мир :-)
Тут я с ним согласился :-)

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Как компилить
« Ответ #159 : 01 Ноября 2007, 17:43:17 »
Вообще, один мой друг, программист, когда я пожаловался ему, как все запутано и запущено в Линуксе, сказал, что ничего удивительного, так как код системы пишет огромное количество никак не скоординированных (ну разве что LSB как-то позволяет придерживаться стандартов) людей, и что программирование - это вообще болото, как и весь остальной мир :-)
Тут я с ним согласился :-)
Наверное друг программист под Windows, и вы всегда работали только на Windows?
Не нужно встречая непонятные ситуации вешать ярлык "Что вы хотели это то же по с открытым кодом и его пишет толпа народа"
Людей пишет много, но работают в команде и все проекты имеют систему контроля версий, где каждое изменение в коде комментируется, а общий вектор развития программы обсуждается на irc каналах или рассылках. На самом деле всё гораздо строже, и просто взять и изменить какой нибудь кусок кода в проекте вам никто не даст. В общем хоть исходный код и раскрыт но вносить изменения в официальный источник может только ограниченный круг людей ,уважаемых автором.

Что касается оригинальных исходников и тех что на сайте убунты, то и то и то оригинальные, только название архива может поменяться (файл *orig.tar.gz). А всё что изменяется в оригинальных исходниках мантейнером, нужно для корректной сборке в конкретном дистрибутиве, или чтобы добавить в программу уникальные возможности, привязанные к конкретному дистрибутиву, b помещаются эти изменения в отдельный патч файл, который применяется перед сборкой.
Ну и то что оно долго собирается означает что вы на верном пути ;)
А раз вам пришлось что то доставить для установки, значит у вас не все зависимости были соблюдены, возможно по тому и не собиралось.
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн azlk

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Как компилить
« Ответ #160 : 01 Ноября 2007, 18:23:04 »
Так, похоже, подошли к какому-то финишу :-)
конец лога:
=========================
dpkg-deb: сборка пакета libnspr4 в файл ../libnspr4_1.firefox1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1_i386.deb.
dpkg-deb: сборка пакета libnspr-dev в файл ../libnspr-dev_1.firefox1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1_i386.deb.
dpkg-deb: сборка пакета libnss3 в файл ../libnss3_1.firefox1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1_i386.deb.
dpkg-deb: сборка пакета libnss-dev в файл ../libnss-dev_1.firefox1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1_i386.deb.
 dpkg-genchanges
dpkg-genchanges: not including original source code in upload
dpkg-buildpackage (debuild emulation): binary and diff upload (original source NOT included)
Now signing changes and any dsc files...
 signfile firefox_1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1.dsc Alexander Sack <asac@ubuntu.com>
gpg: создана таблица ключей `/root/.gnupg/secring.gpg'
gpg: пропущено "Alexander Sack <asac@ubuntu.com>": секретный ключ не найден
gpg: [stdin]: clearsign failed: секретный ключ не найден
debsign: gpg error occurred!  Aborting....
debuild: fatal error at line 1174:
running debsign failed
root@A-buntu:/media/disk/Programs/FireFox/forum.Ubuntu.ru/firefox-1.5.dfsg+1.5.0.14~prepatch071011b#
===============================
Похоже, что не считая подписи gpg все срослось??? Не верю своим глазам!...
Ну вот, попытка установить выдала вот что:
======================
root@A-buntu:/media/disk/Programs/FireFox/forum.Ubuntu.ru# dpkg -i firefox_1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1_i386.deb
dpkg: предупреждение -- снижение версии firefox с 2.0.0.8+2nobinonly-0ubuntu1 до 1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1.
dpkg: анализ файла firefox_1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1_i386.deb, содержащего пакет firefox:
 mozilla-firefox-locale-ru-ru конфликтует с firefox (<< 1.99)
  пакет firefox версии 1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1 будет установлен.
dpkg: не удалось обработать параметр firefox_1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1_i386.deb (--install):
 конфликт пакетов -- firefox не будет установлен
При обработке следующих пакетов произошли ошибки:
 firefox_1.5.dfsg+1.5.0.14~prepatch071011b-0ubuntu1_i386.deb
=======================================
хм, наверное, придется снести 2-ю версию лисы.
Странно, а вот когда из исходников компилируешь, то можно ведь указать, куда ставить, у меня на дебиане, например, жили две версии - родная из пакета 2.0.0.8 и с сайта мозилы 1.5.0.12 из бинарников.
Может и здесь можно такое исполнить?

Оффлайн azlk

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Как компилить
« Ответ #161 : 01 Ноября 2007, 19:32:03 »
Наверное друг программист под Windows, и вы всегда работали только на Windows?

Я Вас понимаю, это, видимо, самая первая реакция, когда кто-то говорит про линукс что-то плохое, даже, если это всем и очевидно :-)
На самом деле я действительно раньше всегда работал только с виндой - до этого прошедшего лета. А летом меня "затянуло" в линукс и я, будучи человеком упертым и не привыкшим паниковать по каждому поводу, мужественно решал все те бесчисленные проблемы, с которыми сталкивается любой, кто начинает изучать *никс в любом виде - хоть пакетный дистрибутив, хоть freebsd, типа gentoo. Причем, я шел в линукс с самыми лучшими ожиданиями и чувствами, но по мере моего продвижения вперед и вглубь, появлялись кое-какие, скажем так, не знания, но навыки, и линукс начинал вырисовываться из тумана в своем истинном виде - без грима, так сказать. Вот об этом и я говорю. Чего все так напрягаются, когда говоришь правду? Линукс действительно является весьма противоречивой и сложно развивающеймся системой и недоделок в нем - немерянное количество, а уж про неудобства для пользователя и говорить не о чем. Наверное, Вы согласитесь, что все пользователи линукса не могут быть специалистами по ОС. А на сегодняшний день это скорее так, чем наоборот. Ведь компьютер нужен человеку, как инструмент, или человек должен стать инструментом, обслуживающим компьютер ?... :-)))
То в мануале забыли написать одну маленькую детальку, без которой можно месяцами сидеть и гадать - почему не работает? то зависимости перепутали, в результате куча народу тратит кучу времени, пытаясь выяснить, откуда у бага ноги растут...
А таких как Вы я за 5 месяцев прочесывания просторов интернета, НИ РАЗУ не встречал. Вы первый человек, по крайней мере, в моей линии жизни :-), кто мне по человечески объясняет, что и как надо (или можно) сделать.
Посмотрите кругом - на форумах, особенно связанных с *никсами, подавляющее большинство людей просто умничают и посылают rtfm или man название_команды. А когда копнешь, выясняется, что человек, который советует, сам не знает, но очень хочет выглядеть умным. Мне кажется, это уже симптом. Причем, я понимаю этих людей - начинающих и не очень - они ведь в свое время тоже столкнулись с тем, что Линукс оказался...не совсем тем, что о нем рассказывали - а признаться в этом у большинства просто нет сил. Вот все и кричат друг другу, какое красивое платье у короля. А король-то - почти голый :-)
 Ладно, это, похоже тянет на отдельную тему :-)
А что касается того моего друга, то он, наверное, к Вашему удивлению, программировал и под винду и под никс-системы, в том числе embedded в одинаковой степени. И еще он преподает программирование в своем институте и слывет гуру в линуксе. Вот такая интересная ситуация

Цитировать
Людей пишет много, но работают в команде и все проекты имеют систему контроля версий, где каждое изменение в коде комментируется, а общий вектор развития программы обсуждается на irc каналах или рассылках. На самом деле всё гораздо строже, и просто взять и изменить какой нибудь кусок кода в проекте вам никто не даст. В общем хоть исходный код и раскрыт но вносить изменения в официальный источник может только ограниченный круг людей ,уважаемых автором.

Наверняка Вы правы, я не берусь говорить о том, чего не знаю, или чего не видел, напротив, как раз глядя на результаты, понимаешь, насколько непросто удерживать дистрибутив стандартизированным, стабильным и одновременно гибким.
Раньше я этого не понимал и приставал к своему "гуру", о котором выше, нельзя ли избавиться от зависимостей как-то...эх....я был слеп, ибо не понимал сути устройства никсо-подобных систем :-) Он мне посоветовал попробовать генту, ибо, как он сказал: генту - выбор хакера :-) и зависимостей там минимально. Так и там все равно хватает гемороя, не говоря уж о том, что неделю сидеть и ждать пока система заново скомпилируется после очередной смены билда или даже просто ОО соберет - это испытание не для тех, кому надо работать, а, скорее, для таких искателей-мазохистов, как я :-)
Побольше бы доброжелательных и внимательных друг к другу людей, и глядишь, линукс повернется к людям лицом и люди к нему потянутся!

Оффлайн alk40

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Как компилить
« Ответ #162 : 03 Ноября 2007, 11:00:37 »
Во время компиляции требует исходники ядра. Как указать на каталог с исход. ядра или просто положить их на место?

Оффлайн SeaJey

  • Активист
  • *
  • Сообщений: 770
  • Electronic Knight
    • Просмотр профиля
Re: Как компилить
« Ответ #163 : 03 Ноября 2007, 12:02:25 »
Зайди в synaptic набери в поиске  linux-headers, устанавливая нужное.
« Последнее редактирование: 03 Ноября 2007, 17:13:48 от SeaJey »

Thread

  • Гость
Re: Как компилить
« Ответ #164 : 03 Ноября 2007, 12:05:58 »
Лучше просто поставить build-essential

 

Страница сгенерирована за 0.021 секунд. Запросов: 21.