Comments (14)
вроде как поняли что libev не той версии, у меня 4.0.0 стоит
from dklab_realplexor.
после понижения до 3.7 вроде продвинулись дальше
теперь ругается gcc на то что не знает параметры -lboost_filesystem -lboost_system
from dklab_realplexor.
теперь выдаются ошибки
/tmp/ccocin5n.o: In function ev_default_loop': /usr/include/ev.h:460: undefined reference to
ev_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 to
ev_loop'
collect2: ld returned 1 exit status
from dklab_realplexor.
после полного понижения в системе libev скомпилировалось все, закрыть можно тему
from dklab_realplexor.
А не подскаже какие версии gmp, mpc, mprf, boost, ev использовали ?
4_й день пытаюсь собрать все никак...
заранее спасибо
from dklab_realplexor.
Последние версии из исходников - см. комментарии в https://github.com/DmitryKoterov/dklab_realplexor/blob/master/cpp/src/Make.sh
Вот насчет libev - выше писали, что, похоже, в новой версии какой-то конфликт при сборке (интересно было бы, кстати, узнать, какой именно и как его обойти; наверняка же какая-то мелочь).
Вообще, сборка - дело непростое, т.к. используется новый C++0x. GCC с ним еще не во всех дистрибутивах обновился, во многих - старые версии (причем они 5-летней давности, так что даже нельзя и сказать, что "слишком уж новый GCC требует реалплексор"), вот и результат...
from dklab_realplexor.
Было бы, кстати, отлично, если кто-нибудь с 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.
./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.
./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.
поставил 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.
скачать скомпилил 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.
яж говорю шаманство
./Make.sh :
#GCC="g++ -std=gnu++0x -static"
GCC="g++ -std=gnu++0x"
и собралось
тоесть не собиралось статически...
пройду всю процедуру заново и отпишусь :)
from dklab_realplexor.
Откатываться к старой версии не очень дальновидно, особенно что пакеты старые найти все сложнее.
По указанной выше ошибке - она решается через так - 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.
В общем, я причесал немного код (например, избавился от табуляции), переложил по папкам и т.д. Добавил инструкции по сборке в https://github.com/DmitryKoterov/dklab_realplexor/blob/master/cpp/README.txt
В Ubuntu 12.04 (и, я думаю, в любом Debian) совсем простая сборка получилась, в 2 команды.
from dklab_realplexor.
Related Issues (20)
- uncaught exception: Error: Permission denied for <http://rpl.host> to get property Proxy.InstallTrigger HOT 4
- поведение при разрыве интернет соединения
- С++ версия сервера. Не полностью отдаёт HTML для IFRAME.. HOT 16
- Проблема при компиляции cpp версии HOT 1
- Не собирается C++ версия на CentOS HOT 4
- проблема с получением сообщений, отправленных одновременно в разные каналы HOT 17
- Send через javascript HOT 1
- 502 Bad Gateway через 21s HOT 1
- OS X installation HOT 2
- Сервер отправляет оборваные ответы HOT 3
- Опера 12.16 HOT 2
- Игнорируется JS_MAX_BOUNCES HOT 3
- Few first messages do not arrive when there is more then 300 connections HOT 4
- Don`t build in OSX Yosemite HOT 1
- Ошибка при компилировании HOT 6
- Баг Dklab realplexor JS API HOT 1
- Почему не запускается dklab_realplexor?
- Cannot compile C++ version (ignoring return value of ‘int setegid(__gid_t)’, declared with attribute warn_unused_result) HOT 1
- Blocked a frame in Google Chrome
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dklab_realplexor.