Решено: Flush (торрент-клиент) (Ошибка при сборке)

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
Naruto-kun
Сообщения: 228
Статус: небритый гентушник
ОС: Gentoo(PC)/easypeasy(Netbook)

Решено: Flush (торрент-клиент)

Сообщение Naruto-kun »

Решил себе поставить net-p2p/flush-0.9.6 из layman/wish. Во время emerge произошла ошибка:

Код: Выделить всё

daemon_session.cpp:(.text+0x9b1): undefined reference to `boost::signals::detail::signal_base::signal_base(boost::function2<bool, boost::signals::detail::stored_group, boost::signals::detail::stored_group> const&, boost::any const&)'
daemon_session.cpp:(.text+0xa42): undefined reference to `boost::signals::detail::signal_base::signal_base(boost::function2<bool, boost::signals::detail::stored_group, boost::signals::detail::stored_group> const&, boost::any const&)'
daemon_session.cpp:(.text+0xac9): undefined reference to `boost::signals::detail::signal_base::signal_base(boost::function2<bool, boost::signals::detail::stored_group, boost::signals::detail::stored_group> const&, boost::any const&)'
flush-daemon_session.o: In function `Daemon_session_aux::Private::Private()':
daemon_session.cpp:(.text+0xf41): undefined reference to `boost::signals::detail::signal_base::signal_base(boost::function2<bool, boost::signals::detail::stored_group, boost::signals::detail::stored_group> const&, boost::any const&)'
daemon_session.cpp:(.text+0xfd2): undefined reference to `boost::signals::detail::signal_base::signal_base(boost::function2<bool, boost::signals::detail::stored_group, boost::signals::detail::stored_group> const&, boost::any const&)'
flush-daemon_session.o:daemon_session.cpp:(.text+0x1059): more undefined references to `boost::signals::detail::signal_base::signal_base(boost::function2<bool, boost::signals::detail::stored_group, boost::signals::detail::stored_group> const&, boost::any const&)' follow
collect2: выполнение ld завершилось с кодом возврата 1
make[3]: *** [flush] Ошибка 1
make[3]: Leaving directory `/var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6/src'
make[2]: *** [all] Ошибка 2
make[2]: Leaving directory `/var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6/src'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6'
make: *** [all] Ошибка 2
 * ERROR: net-p2p/flush-0.9.6 failed:
 *   emake failed
 *
 * Call stack:
 *     ebuild.sh, line  54:  Called src_compile
 *   environment, line 4970:  Called die
 * The specific snippet of code:
 *       emake || die "emake failed"
 *
 * If you need support, post the output of 'emerge --info =net-p2p/flush-0.9.6',
 * the complete build log and the output of 'emerge -pqv =net-p2p/flush-0.9.6'.
 * This ebuild is from an overlay named 'wish': '/var/lib/layman/wish/'
 * The complete build log is located at '/var/tmp/portage/net-p2p/flush-0.9.6/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-p2p/flush-0.9.6/temp/environment'.
 * S: '/var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6'

>>> Failed to emerge net-p2p/flush-0.9.6, Log file:

>>>  '/var/tmp/portage/net-p2p/flush-0.9.6/temp/build.log'

 * Messages for package net-p2p/flush-0.9.6:

 * ERROR: net-p2p/flush-0.9.6 failed:
 *   emake failed
 *
 * Call stack:
 *     ebuild.sh, line  54:  Called src_compile
 *   environment, line 4970:  Called die
 * The specific snippet of code:
 *       emake || die "emake failed"
 *
 * If you need support, post the output of 'emerge --info =net-p2p/flush-0.9.6',
 * the complete build log and the output of 'emerge -pqv =net-p2p/flush-0.9.6'.
 * This ebuild is from an overlay named 'wish': '/var/lib/layman/wish/'
 * The complete build log is located at '/var/tmp/portage/net-p2p/flush-0.9.6/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-p2p/flush-0.9.6/temp/environment'.
 * S: '/var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6'

Весь лог emerge flush в прикреплённом файле:

Пробовал revdep-rebuild, переставлять boost. Не помогло. Подскажите, в чём может быть проблема.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Flush (торрент-клиент)

Сообщение serzh-z »

Naruto-kun писал(а):
10.07.2010 14:47
Подскажите, в чём может быть проблема.
Либо в ошибке в Makefile для flush, либо в том, что он писался в расчёте на более старую или новую версию Boost. В текущей версии Boost библиотека Boost.Signal вынеса в отдельный архив и линковаться с нею нужно явно.
Спасибо сказали:
Аватара пользователя
Naruto-kun
Сообщения: 228
Статус: небритый гентушник
ОС: Gentoo(PC)/easypeasy(Netbook)

Re: Решено: Flush (торрент-клиент)

Сообщение Naruto-kun »

serzh-z писал(а):
10.07.2010 16:49
Naruto-kun писал(а):
10.07.2010 14:47
Подскажите, в чём может быть проблема.
Либо в ошибке в Makefile для flush, либо в том, что он писался в расчёте на более старую или новую версию Boost. В текущей версии Boost библиотека Boost.Signal вынеса в отдельный архив и линковаться с нею нужно явно.

Ясно. Как это сделать при сборке сорцов в ручную, понятно - указывать различные флаги вроде -l$PATH
А не могли вы бы пояснить, как в таком случае при установке с помощью emerge слинковаться?
PS. Есть подозрение, что надо прописать пути к библиотеке в /etc/make.conf.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5426
ОС: Gentoo

Re: Решено: Flush (торрент-клиент)

Сообщение /dev/random »

Naruto-kun писал(а):
10.07.2010 16:52
Ясно. Как это сделать при сборке сорцов в ручную, понятно - указывать различные флаги вроде -l$PATH
А не могли вы бы пояснить, как в таком случае при установке с помощью emerge слинковаться?
PS. Есть подозрение, что надо прописать пути к библиотеке в /etc/make.conf.

Проще всего - добавить их в переменную CXXFLAGS. Причём лучше не в make.conf (вдруг забудете убрать), а в командной строке слева от emerge
Да, и речь не о путях, а о именах библиотек. В -l (L маленькое, не путать с -I, i большое) пути не указываются.
Спасибо сказали:
Аватара пользователя
Naruto-kun
Сообщения: 228
Статус: небритый гентушник
ОС: Gentoo(PC)/easypeasy(Netbook)

Re: Решено: Flush (торрент-клиент)

Сообщение Naruto-kun »

/dev/random писал(а):
10.07.2010 18:43
Naruto-kun писал(а):
10.07.2010 16:52
Ясно. Как это сделать при сборке сорцов в ручную, понятно - указывать различные флаги вроде -l$PATH
А не могли вы бы пояснить, как в таком случае при установке с помощью emerge слинковаться?
PS. Есть подозрение, что надо прописать пути к библиотеке в /etc/make.conf.

Проще всего - добавить их в переменную CXXFLAGS. Причём лучше не в make.conf (вдруг забудете убрать), а в командной строке слева от emerge
Да, и речь не о путях, а о именах библиотек. В -l (L маленькое, не путать с -I, i большое) пути не указываются.

Каюсь, насчёт путей ошибся. Спасибо. Прочитал в одной из тем на форуме генту.ру, о похожей проблеме при сборке пакетов:

Код: Выделить всё

undefined reference to`boost::system::get_system_category()'

Проблема решилась, по словам автора:
надо добавить две либы к сборке: -lboost_system -lboost_thread

Суммируя ваши слова и то, что было сказано в на форуме генту, попробовал так:

Код: Выделить всё

# CXXFLAGS="-lboost_system -lboost_thread" emerge -av flush

Сборка прервалась, но вроде бы, уже по другой ошибке.
Весь лог сборки в этом файле:


UP. Добавил ещё -lboost_signal, всё равно ошибка, хоть и другая:

В частности, насколько я понимаю:

Код: Выделить всё

checking whether the C++ compiler works... no
configure: error: in `/var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6':
configure: error: C++ compiler cannot create executables

Похоже, что не находится компилятор с++. Что странно, потому как gcc стоит.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5426
ОС: Gentoo

Re: Решено: Flush (торрент-клиент)

Сообщение /dev/random »

Naruto-kun писал(а):
10.07.2010 19:12
В частности, насколько я понимаю:

Код: Выделить всё

checking whether the C++ compiler works... no
configure: error: in `/var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6':
configure: error: C++ compiler cannot create executables

Похоже, что не находится компилятор с++. Что странно, потому как gcc стоит.

Это значит, что вы указали неработоспособный флаг.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Flush (торрент-клиент)

Сообщение serzh-z »

Naruto-kun писал(а):
10.07.2010 19:12
Суммируя ваши слова и то, что было сказано в на форуме генту, попробовал так:
Ну вообще-то там описана проблема с boost::system. Boost.Signals располагается в либе libboost_signals (-lboost_signals).

/dev/random писал(а):
12.07.2010 02:51
checking whether the C++ compiler works... no
См. config.log в /var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5426
ОС: Gentoo

Re: Решено: Flush (торрент-клиент)

Сообщение /dev/random »

serzh-z писал(а):
12.07.2010 03:13
/dev/random писал(а):
12.07.2010 02:51
checking whether the C++ compiler works... no
См. config.log в /var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6

Во-первых, это писал не я, а во-вторых, тут не нужно быть телепатом, чтобы понять причину проблемы без config.log. Как я уже сказал, он просто указал неработоспособный флаг.
Спасибо сказали:
Аватара пользователя
Naruto-kun
Сообщения: 228
Статус: небритый гентушник
ОС: Gentoo(PC)/easypeasy(Netbook)

Re: Решено: Flush (торрент-клиент)

Сообщение Naruto-kun »

serzh-z писал(а):
12.07.2010 03:13
Naruto-kun писал(а):
10.07.2010 19:12
Суммируя ваши слова и то, что было сказано в на форуме генту, попробовал так:
Ну вообще-то там описана проблема с boost::system. Boost.Signals располагается в либе libboost_signals (-lboost_signals).

/dev/random писал(а):
12.07.2010 02:51
checking whether the C++ compiler works... no
См. config.log в /var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6


/dev/random писал(а):
12.07.2010 03:24
serzh-z писал(а):
12.07.2010 03:13
/dev/random писал(а):
12.07.2010 02:51
checking whether the C++ compiler works... no
См. config.log в /var/tmp/portage/net-p2p/flush-0.9.6/work/flush-0.9.6

Во-первых, это писал не я, а во-вторых, тут не нужно быть телепатом, чтобы понять причину проблемы без config.log. Как я уже сказал, он просто указал неработоспособный флаг.


Всё верно. Сделал:

Код: Выделить всё

CXXFLAGS="-lboost_system -lboost_thread -lboost_signals" emerge -av flush

Установилось без проблем. Всем большое спасибо за помощь.
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Flush (торрент-клиент)

Сообщение serzh-z »

/dev/random писал(а):
12.07.2010 03:24
он просто указал неработоспособный флаг.
Гениальное описание причины проблемы. =) Мне, например, в подобных случаях важнее знать КАКОЙ флаг, а не сам факт того, что я указал неверный флаг. ) Ну да решено и ладно. )
Спасибо сказали:
Аватара пользователя
xorader
Сообщения: 1030
Статус: собирающий миры
ОС: Debian

Re: Решено: Flush (торрент-клиент)

Сообщение xorader »

а в upstrim патчег отправили ? ;)
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
Спасибо сказали: