Code Monkey home page Code Monkey logo

Comments (14)

Arkasha18 avatar Arkasha18 commented on July 28, 2024

вроде как поняли что libev не той версии, у меня 4.0.0 стоит

from dklab_realplexor.

Arkasha18 avatar Arkasha18 commented on July 28, 2024

после понижения до 3.7 вроде продвинулись дальше
теперь ругается gcc на то что не знает параметры -lboost_filesystem -lboost_system

from dklab_realplexor.

Arkasha18 avatar Arkasha18 commented on July 28, 2024

теперь выдаются ошибки

/tmp/ccocin5n.o: In function ev_default_loop': /usr/include/ev.h:460: undefined reference toev_default_loop_init'
/tmp/ccocin5n.o: In function Realplexor::Event::mainloop()': /root/123/dklab_realplexor/trunk/cpp/src/Realplexor/Event/Server.h:213: undefined reference toev_loop'
collect2: ld returned 1 exit status

from dklab_realplexor.

Arkasha18 avatar Arkasha18 commented on July 28, 2024

после полного понижения в системе libev скомпилировалось все, закрыть можно тему

from dklab_realplexor.

rukhem avatar rukhem commented on July 28, 2024

А не подскаже какие версии gmp, mpc, mprf, boost, ev использовали ?
4_й день пытаюсь собрать все никак...
заранее спасибо

from dklab_realplexor.

dimikot avatar dimikot commented on July 28, 2024

Последние версии из исходников - см. комментарии в https://github.com/DmitryKoterov/dklab_realplexor/blob/master/cpp/src/Make.sh

Вот насчет libev - выше писали, что, похоже, в новой версии какой-то конфликт при сборке (интересно было бы, кстати, узнать, какой именно и как его обойти; наверняка же какая-то мелочь).

Вообще, сборка - дело непростое, т.к. используется новый C++0x. GCC с ним еще не во всех дистрибутивах обновился, во многих - старые версии (причем они 5-летней давности, так что даже нельзя и сказать, что "слишком уж новый GCC требует реалплексор"), вот и результат...

from dklab_realplexor.

dimikot avatar dimikot commented on July 28, 2024

Было бы, кстати, отлично, если кто-нибудь с ev 4.x прислал сюда патч. Скорее всего, там просто пара функций переименовалась, из-за этого и не собиралось. Выдержка из документации по апгрейду с 3.x до 4.x:

A number of functions and symbols have been renamed:

ev_loop => ev_run
EVLOOP_NONBLOCK => EVRUN_NOWAIT
EVLOOP_ONESHOT => EVRUN_ONCE

ev_unloop => ev_break
EVUNLOOP_CANCEL => EVBREAK_CANCEL
EVUNLOOP_ONE => EVBREAK_ONE
EVUNLOOP_ALL => EVBREAK_ALL

EV_TIMEOUT => EV_TIMER

ev_loop_count => ev_iteration
ev_loop_depth => ev_depth
ev_loop_verify => ev_verify

Most functions working on C objects don't have an
C<ev_loop_> prefix, so it was removed; C<ev_loop>, C<ev_unloop> and
associated constants have been renamed to not collide with the C anymore and C<EV_TIMER> now follows the same naming scheme
as all other watcher types. Note that C<ev_loop_fork> is still called
C<ev_loop_fork> because it would otherwise clash with the C<ev_fork>
typedef.

from dklab_realplexor.

rukhem avatar rukhem commented on July 28, 2024

./bjam -a architecture=x86 instruction-set=i686 toolset=gcc cxxflags=-std=gnu++0x build-type=complete
/root/boost_1_50_0/tools/build/v2/build/feature.jam:320: in validate-feature from module feature
error: unknown feature ""
...

наверное надо так :
./bjam -j8 -a architecture=x86 --instruction-set=i686 --toolset=gcc --cxxflags=-std=gnu++0x --build-type=complete --layout=tagged stage

from dklab_realplexor.

rukhem avatar rukhem commented on July 28, 2024

./Make.sh
In file included from dklab_realplexor.cpp:80:0:
Realplexor/Tools.h: In static member function ‘static Realplexor::cursor_t Realplexor::Tools::time_hi_res()’:
Realplexor/Tools.h:14:33: error: too few arguments to function ‘ev::tstamp ev::now(ev_loop*)’
compilation terminated due to -Wfatal-erro

пытаюсь найти откуда берется ev_loop чтоб заменить на ev_run и никак :)

egrep -R ev_loop ./*
./Realplexor/Event/Server.h.orig: ev_loop(EV_DEFAULT_ 0);
тут поменял

void mainloop()
{
ev_run(EV_DEFAULT_ 0);

from dklab_realplexor.

rukhem avatar rukhem commented on July 28, 2024

поставил libev-3.7

./Make.sh
/usr/bin/ld: cannot find -lcrypt
collect2: ld returned 1 exit status

ldconfig -p | grep crypt
libk5crypto.so.3 (libc6,x86-64) => /lib64/libk5crypto.so.3
libgcrypt.so.11 (libc6,x86-64) => /lib64/libgcrypt.so.11
libcrypto.so.10 (libc6,x86-64) => /usr/lib64/libcrypto.so.10
libcrypt.so.1 (libc6,x86-64, OS ABI: Linux 2.6.18) => /lib64/libcrypt.so.1
libcrypt.so.1 (libc6, OS ABI: Linux 2.6.18) => /lib/libcrypt.so.1
libcrypt.so (libc6,x86-64, OS ABI: Linux 2.6.18) => /usr/lib64/libcrypt.so
libcrypt.so (libc6, OS ABI: Linux 2.6.18) => /usr/lib/libcrypt.so

ваще ничего не понятно

from dklab_realplexor.

rukhem avatar rukhem commented on July 28, 2024

скачать скомпилил libgcrypt-1.5.0

ldconfig -p | grep libgcrypt
libgcrypt.so.11 (libc6,x86-64) => /usr/local/lib/libgcrypt.so.11
libgcrypt.so.11 (libc6,x86-64) => /lib64/libgcrypt.so.11
libgcrypt.so (libc6,x86-64) => /usr/local/lib/libgcrypt.so

./Make.sh
/usr/bin/ld: cannot find -lcrypt
collect2: ld returned 1 exit status

from dklab_realplexor.

rukhem avatar rukhem commented on July 28, 2024

яж говорю шаманство
./Make.sh :

#GCC="g++ -std=gnu++0x -static"
GCC="g++ -std=gnu++0x"

и собралось

тоесть не собиралось статически...
пройду всю процедуру заново и отпишусь :)

from dklab_realplexor.

ZooKeeper avatar ZooKeeper commented on July 28, 2024

Откатываться к старой версии не очень дальновидно, особенно что пакеты старые найти все сложнее.

По указанной выше ошибке - она решается через так - ev::now(EV_DEFAULT);
Из документации

Libev can be compiled with a variety of options, the most fundamental of which is EV_MULTIPLICITY. This option determines whether (most) functions and callbacks have an initial struct ev_loop * argument.

То есть функциям нужен контекст лупа в котором выполняться.

Дальше появляется уже менее очевидная ошибка
Storage/CleanupTimers.h: In member function 'void Storage::CleanupTimers::start_timer_for_id(Realplexor::ident_t, int, Cb)':
Storage/CleanupTimers.h:31:26: error: capture of non-variable 'Storage::CleanupTimers::storage'

Скорее всего проблема в доступности переменных
gcc version 4.7.2

from dklab_realplexor.

dimikot avatar dimikot commented on July 28, 2024

В общем, я причесал немного код (например, избавился от табуляции), переложил по папкам и т.д. Добавил инструкции по сборке в https://github.com/DmitryKoterov/dklab_realplexor/blob/master/cpp/README.txt

В Ubuntu 12.04 (и, я думаю, в любом Debian) совсем простая сборка получилась, в 2 команды.

from dklab_realplexor.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.