Giter Site home page Giter Site logo

retinatattoo's Introduction

RetinaTattoo is a software for live video streaming to LED strips. It is written in C++11 and consists of a client and server. The client can be substituted with common video streaming solutions (like gstreamer or vlc), but often the command line client is just simpler to use.

The server can be configured to match the hardware specifics (size, pixel format...) of your led stripes and tune color characteristics (via HSL).

WSyS and me used it to stream and play super mario bros. from a nes emulator to wsys's LED Matrix.

Examples

Streaming video to you LED Matrix using gstreamer

Let's say you have a Raspberry PI connect via SPI to your LED Matrix and some videos on your notebook which you would like to display. The following procedure scales and streams the video to the LED Matrix, and also mirrors the output to a local X11 window.

On the raspberry:

# clone the RetinaTattoo repository
git clone https://github.com/kallaballa/RetinaTattoo.git

# install dependencies
apt-get install build-essential libboost-system-dev libboost-thread-dev g++-4.7

# build it
cd RetinaTattoo
make

# start the server. in this example for a 24x24 led matrix with bgr pixel format and alternating scan line direction. additionally it slightly dims lightness.
./server -a -f bgr -d24x24 -l-10 8888

On your notebook:

#install gstreamer 
apt-get install gstreamer-tools gstreamer0.10-alsa gstreamer0.10-ffmpeg gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-x

# start the stream assuming your raspberry has the ip address 10.20.30.11
cd RetinaTattoo/scripts
./videostream.sh myvideo.avi 10.20.30.11 8888

It's also possible to capture a X11 window and stream it directly to a LED Matrix, but i haven't written easy-to-use scripts for that yet. feel free to bug me :) anyway, there's a video of us using the technique to play super mario bros. Super Mario LED Matrix

== Featuring articles ==

retinatattoo's People

Contributors

kallaballa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

leoken tomvdb

retinatattoo's Issues

kompiliert nicht auf dem Pi

hey @kallaballa

leider baut es nicht auf dem pi. hast du eine ahnung woran das liegen kann? den befehl zum bauen hab ich aus dem Makefile genommen.

g++-4.7 -L/lib -lboost_thread -lboost_system -lpthread  server.cpp   -o server
server.cpp: In function ‘int main(int, char**)’:
server.cpp:130:10: error: ‘it’ does not name a type
server.cpp:131:42: error: ‘it’ was not declared in this scope
server.cpp:159:35: error: no matching function for call to ‘std::basic_ofstream<char>::basic_ofstream(std::string&)’
server.cpp:159:35: note: candidates are:
In file included from server.cpp:5:0:
/usr/include/c++/4.7/fstream:629:7: note: std::basic_ofstream<_CharT, _Traits>::basic_ofstream(const char*, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
/usr/include/c++/4.7/fstream:629:7: note:   no known conversion for argument 1 from ‘std::string {aka std::basic_string<char>}’ to ‘const char*’
/usr/include/c++/4.7/fstream:614:7: note: std::basic_ofstream<_CharT, _Traits>::basic_ofstream() [with _CharT = char; _Traits = std::char_traits<char>]
/usr/include/c++/4.7/fstream:614:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/c++/4.7/fstream:588:11: note: std::basic_ofstream<char>::basic_ofstream(const std::basic_ofstream<char>&)
/usr/include/c++/4.7/fstream:588:11: note:   no known conversion for argument 1 from ‘std::string {aka std::basic_string<char>}’ to ‘const std::basic_ofstream<char>&’
server.cpp:231:9: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
server.cpp:231:10: error: no matching function for call to ‘boost::thread::thread(main(int, char**)::<lambda()>)’
server.cpp:231:10: note: candidates are:
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:305:9: note: template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> boost::thread::thread(F, A1, A2, A3, A4, A5, A6, A7, A8, A9)
/usr/include/boost/thread/detail/thread.hpp:305:9: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   candidate expects 10 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:298:9: note: template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> boost::thread::thread(F, A1, A2, A3, A4, A5, A6, A7, A8)
/usr/include/boost/thread/detail/thread.hpp:298:9: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   candidate expects 9 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:291:9: note: template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7> boost::thread::thread(F, A1, A2, A3, A4, A5, A6, A7)
/usr/include/boost/thread/detail/thread.hpp:291:9: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   candidate expects 8 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:284:9: note: template<class F, class A1, class A2, class A3, class A4, class A5, class A6> boost::thread::thread(F, A1, A2, A3, A4, A5, A6)
/usr/include/boost/thread/detail/thread.hpp:284:9: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   candidate expects 7 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:277:9: note: template<class F, class A1, class A2, class A3, class A4, class A5> boost::thread::thread(F, A1, A2, A3, A4, A5)
/usr/include/boost/thread/detail/thread.hpp:277:9: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   candidate expects 6 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:270:9: note: template<class F, class A1, class A2, class A3, class A4> boost::thread::thread(F, A1, A2, A3, A4)
/usr/include/boost/thread/detail/thread.hpp:270:9: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   candidate expects 5 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:263:9: note: template<class F, class A1, class A2, class A3> boost::thread::thread(F, A1, A2, A3)
/usr/include/boost/thread/detail/thread.hpp:263:9: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   candidate expects 4 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:256:9: note: template<class F, class A1, class A2> boost::thread::thread(F, A1, A2)
/usr/include/boost/thread/detail/thread.hpp:256:9: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   candidate expects 3 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:250:9: note: template<class F, class A1> boost::thread::thread(F, A1)
/usr/include/boost/thread/detail/thread.hpp:250:9: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   candidate expects 2 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:216:9: note: boost::thread::thread(boost::detail::thread_move_t<boost::thread>)
/usr/include/boost/thread/detail/thread.hpp:216:9: note:   no known conversion for argument 1 from ‘main(int, char**)::<lambda()>’ to ‘boost::detail::thread_move_t<boost::thread>’
/usr/include/boost/thread/detail/thread.hpp:210:18: note: template<class F> boost::thread::thread(boost::detail::thread_move_t<T>)
/usr/include/boost/thread/detail/thread.hpp:210:18: note:   template argument deduction/substitution failed:
server.cpp:231:10: note:   ‘main(int, char**)::<lambda()>’ is not derived from ‘boost::detail::thread_move_t<T>’
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:202:18: note: template<class F> boost::thread::thread(F, typename boost::disable_if<boost::is_convertible<T&, boost::detail::thread_move_t<T> >, boost::thread::dummy*>::type)
/usr/include/boost/thread/detail/thread.hpp:202:18: note:   template argument deduction/substitution failed:
/usr/include/boost/thread/detail/thread.hpp: In substitution of ‘template<class F> boost::thread::thread(F, typename boost::disable_if<boost::is_convertible<T&, boost::detail::thread_move_t<T> >, boost::thread::dummy*>::type) [with F = main(int, char**)::<lambda()>]’:
server.cpp:231:10:   required from here
/usr/include/boost/thread/detail/thread.hpp:202:18: error: template argument for ‘template<class T> struct boost::detail::thread_move_t’ uses local type ‘main(int, char**)::<lambda()>’
/usr/include/boost/thread/detail/thread.hpp:202:18: error:   trying to instantiate ‘template<class T> struct boost::detail::thread_move_t’
/usr/include/boost/thread/detail/thread.hpp:155:9: note: boost::thread::thread()
/usr/include/boost/thread/detail/thread.hpp:155:9: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/boost/thread/thread.hpp:22:0,
                 from server.cpp:9:
/usr/include/boost/thread/detail/thread.hpp:123:18: note: boost::thread::thread(boost::detail::thread_data_ptr)
/usr/include/boost/thread/detail/thread.hpp:123:18: note:   no known conversion for argument 1 from ‘main(int, char**)::<lambda()>’ to ‘boost::detail::thread_data_ptr {aka boost::shared_ptr<boost::detail::thread_data_base>}’
/usr/include/boost/thread/detail/thread.hpp:114:9: note: boost::thread::thread(boost::thread&)
/usr/include/boost/thread/detail/thread.hpp:114:9: note:   no known conversion for argument 1 from ‘main(int, char**)::<lambda()>’ to ‘boost::thread&’

Doesn't compile

Maybe the libboost version?

mox@Nanu:~/ledbridge/ledtools/RetinaTattoo$ make
g++ -O3 -Wall -std=c++0x -L/lib -lboost_thread -lboost_system -lpthread client.cpp -o client
/tmp/ccuwyAK7.o: In function `boost::detail::thread_data<main::{lambda()#1}>::~thread_data()':
client.cpp:(.text+0x142): undefined reference to `boost::detail::thread_data_base::~thread_data_base()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::object_pool<boost::asio::detail::epoll_reactor::descriptor_state>::destroy_list(boost::asio::detail::epoll_reactor::descriptor_state*) [clone .isra.109]':
client.cpp:(.text+0x1c2): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::detail::thread_data<main::{lambda()#1}>::~thread_data()':
client.cpp:(.text+0x5b): undefined reference to `boost::detail::thread_data_base::~thread_data_base()'
/tmp/ccuwyAK7.o: In function `boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, HeartbeatReceiver>, boost::_bi::list1<boost::_bi::value<HeartbeatReceiver*> > > >::~thread_data()':
client.cpp:(.text._ZN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf0Iv17HeartbeatReceiverEENS2_5list1INS2_5valueIPS6_EEEEEEED2Ev[_ZN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf0Iv17HeartbeatReceiverEENS2_5list1INS2_5valueIPS6_EEEEEEED5Ev]+0xb): undefined reference to `boost::detail::thread_data_base::~thread_data_base()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service, boost::asio::detail::task_io_service::thread_info>::context>::~tss_ptr()':
client.cpp:(.text._ZN5boost4asio6detail7tss_ptrINS1_10call_stackINS1_15task_io_serviceENS4_11thread_infoEE7contextEED2Ev[_ZN5boost4asio6detail7tss_ptrINS1_10call_stackINS1_15task_io_serviceENS4_11thread_infoEE7contextEED5Ev]+0xb): undefined reference to `pthread_key_delete'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::strand_service::strand_impl, unsigned char>::context>::~tss_ptr()':
client.cpp:(.text._ZN5boost4asio6detail7tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEhE7contextEED2Ev[_ZN5boost4asio6detail7tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEhE7contextEED5Ev]+0xb): undefined reference to `pthread_key_delete'
/tmp/ccuwyAK7.o: In function `boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, HeartbeatReceiver>, boost::_bi::list1<boost::_bi::value<HeartbeatReceiver*> > > >::~thread_data()':
client.cpp:(.text._ZN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf0Iv17HeartbeatReceiverEENS2_5list1INS2_5valueIPS6_EEEEEEED0Ev[_ZN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf0Iv17HeartbeatReceiverEENS2_5list1INS2_5valueIPS6_EEEEEEED0Ev]+0x12): undefined reference to `boost::detail::thread_data_base::~thread_data_base()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::socket_ops::sync_sendto(int, unsigned char, iovec const*, unsigned int, int, sockaddr const*, unsigned int, boost::system::error_code&)':
client.cpp:(.text._ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE[_ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE]+0x92): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE[_ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE]+0xa2): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE[_ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE]+0xd1): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE[_ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE]+0xdb): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE[_ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE]+0x124): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o:client.cpp:(.text._ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE[_ZN5boost4asio6detail10socket_ops11sync_sendtoEihPK5iovecjiPK8sockaddrjRNS_6system10error_codeE]+0x135): more undefined references to `boost::system::system_category()' follow
/tmp/ccuwyAK7.o: In function `boost::asio::detail::resolver_service_base::shutdown_service()':
client.cpp:(.text._ZN5boost4asio6detail21resolver_service_base16shutdown_serviceEv[_ZN5boost4asio6detail21resolver_service_base16shutdown_serviceEv]+0xbe): undefined reference to `pthread_join'
client.cpp:(.text._ZN5boost4asio6detail21resolver_service_base16shutdown_serviceEv[_ZN5boost4asio6detail21resolver_service_base16shutdown_serviceEv]+0xd9): undefined reference to `pthread_detach'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::task_io_service::shutdown_service()':
client.cpp:(.text._ZN5boost4asio6detail15task_io_service16shutdown_serviceEv[_ZN5boost4asio6detail15task_io_service16shutdown_serviceEv]+0x8c): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::call_stack<boost::asio::detail::task_io_service, boost::asio::detail::task_io_service::thread_info>::contains(boost::asio::detail::task_io_service*)':
client.cpp:(.text._ZN5boost4asio6detail10call_stackINS1_15task_io_serviceENS3_11thread_infoEE8containsEPS3_[_ZN5boost4asio6detail10call_stackINS1_15task_io_serviceENS3_11thread_infoEE8containsEPS3_]+0x11): undefined reference to `pthread_getspecific'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::op_queue<boost::asio::detail::task_io_service_operation>::~op_queue()':
client.cpp:(.text._ZN5boost4asio6detail8op_queueINS1_25task_io_service_operationEED2Ev[_ZN5boost4asio6detail8op_queueINS1_25task_io_service_operationEED5Ev]+0x2a): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&, boost::asio::detail::task_io_service::thread_info&, boost::asio::detail::op_queue<boost::asio::detail::task_io_service_operation>&, boost::system::error_code const&)':
client.cpp:(.text._ZN5boost4asio6detail15task_io_service10do_run_oneERNS1_11scoped_lockINS1_11posix_mutexEEERNS2_11thread_infoERNS1_8op_queueINS1_25task_io_service_operationEEERKNS_6system10error_codeE[_ZN5boost4asio6detail15task_io_service10do_run_oneERNS1_11scoped_lockINS1_11posix_mutexEEERNS2_11thread_infoERNS1_8op_queueINS1_25task_io_service_operationEEERKNS_6system10error_codeE]+0x15f): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::epoll_reactor::deregister_descriptor(int, boost::asio::detail::epoll_reactor::descriptor_state*&, bool)':
client.cpp:(.text._ZN5boost4asio6detail13epoll_reactor21deregister_descriptorEiRPNS2_16descriptor_stateEb[_ZN5boost4asio6detail13epoll_reactor21deregister_descriptorEiRPNS2_16descriptor_stateEb]+0x69): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::reactive_socket_service_base::destroy(boost::asio::detail::reactive_socket_service_base::base_implementation_type&)':
client.cpp:(.text._ZN5boost4asio6detail28reactive_socket_service_base7destroyERNS2_24base_implementation_typeE[_ZN5boost4asio6detail28reactive_socket_service_base7destroyERNS2_24base_implementation_typeE]+0x42): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::scoped_ptr<boost::asio::detail::posix_thread>::~scoped_ptr()':
client.cpp:(.text._ZN5boost4asio6detail10scoped_ptrINS1_12posix_threadEED2Ev[_ZN5boost4asio6detail10scoped_ptrINS1_12posix_threadEED5Ev]+0x2e): undefined reference to `pthread_detach'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::resolver_service_base::~resolver_service_base()':
client.cpp:(.text._ZN5boost4asio6detail21resolver_service_baseD2Ev[_ZN5boost4asio6detail21resolver_service_baseD5Ev]+0xa6): undefined reference to `pthread_detach'
/tmp/ccuwyAK7.o: In function `boost::detail::thread_data_base::thread_data_base()':
client.cpp:(.text._ZN5boost6detail16thread_data_baseC2Ev[_ZN5boost6detail16thread_data_baseC5Ev]+0x2a): undefined reference to `vtable for boost::detail::thread_data_base'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::eventfd_select_interrupter::open_descriptors()':
client.cpp:(.text._ZN5boost4asio6detail26eventfd_select_interrupter16open_descriptorsEv[_ZN5boost4asio6detail26eventfd_select_interrupter16open_descriptorsEv]+0xd9): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::epoll_reactor::do_epoll_create()':
client.cpp:(.text._ZN5boost4asio6detail13epoll_reactor15do_epoll_createEv[_ZN5boost4asio6detail13epoll_reactor15do_epoll_createEv]+0x45): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::epoll_reactor::fork_service(boost::asio::io_service::fork_event)':
client.cpp:(.text._ZN5boost4asio6detail13epoll_reactor12fork_serviceENS0_10io_service10fork_eventE[_ZN5boost4asio6detail13epoll_reactor12fork_serviceENS0_10io_service10fork_eventE]+0x166): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN5boost4asio6detail13epoll_reactor12fork_serviceENS0_10io_service10fork_eventE[_ZN5boost4asio6detail13epoll_reactor12fork_serviceENS0_10io_service10fork_eventE]+0x1c6): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::posix_tss_ptr_create(unsigned int&)':
client.cpp:(.text._ZN5boost4asio6detail20posix_tss_ptr_createERj[_ZN5boost4asio6detail20posix_tss_ptr_createERj]+0x14): undefined reference to `pthread_key_create'
client.cpp:(.text._ZN5boost4asio6detail20posix_tss_ptr_createERj[_ZN5boost4asio6detail20posix_tss_ptr_createERj]+0x1b): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::posix_event::posix_event()':
client.cpp:(.text._ZN5boost4asio6detail11posix_eventC2Ev[_ZN5boost4asio6detail11posix_eventC5Ev]+0x1f): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::task_io_service::run(boost::system::error_code&)':
client.cpp:(.text._ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE[_ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE]+0x25): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE[_ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE]+0x94): undefined reference to `pthread_getspecific'
client.cpp:(.text._ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE[_ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE]+0xad): undefined reference to `pthread_setspecific'
client.cpp:(.text._ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE[_ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE]+0x144): undefined reference to `pthread_setspecific'
client.cpp:(.text._ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE[_ZN5boost4asio6detail15task_io_service3runERNS_6system10error_codeE]+0x1a8): undefined reference to `pthread_setspecific'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::posix_mutex::posix_mutex()':
client.cpp:(.text._ZN5boost4asio6detail11posix_mutexC2Ev[_ZN5boost4asio6detail11posix_mutexC5Ev]+0x1b): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::reactive_socket_service_base::do_open(boost::asio::detail::reactive_socket_service_base::base_implementation_type&, int, int, int, boost::system::error_code&)':
client.cpp:(.text._ZN5boost4asio6detail28reactive_socket_service_base7do_openERNS2_24base_implementation_typeEiiiRNS_6system10error_codeE[_ZN5boost4asio6detail28reactive_socket_service_base7do_openERNS2_24base_implementation_typeEiiiRNS_6system10error_codeE]+0xe8): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN5boost4asio6detail28reactive_socket_service_base7do_openERNS2_24base_implementation_typeEiiiRNS_6system10error_codeE[_ZN5boost4asio6detail28reactive_socket_service_base7do_openERNS2_24base_implementation_typeEiiiRNS_6system10error_codeE]+0x111): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::basic_socket<boost::asio::ip::udp, boost::asio::datagram_socket_service<boost::asio::ip::udp> >::open(boost::asio::ip::udp const&)':
client.cpp:(.text._ZN5boost4asio12basic_socketINS0_2ip3udpENS0_23datagram_socket_serviceIS3_EEE4openERKS3_[_ZN5boost4asio12basic_socketINS0_2ip3udpENS0_23datagram_socket_serviceIS3_EEE4openERKS3_]+0x24): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::posix_thread::start_thread(boost::asio::detail::posix_thread::func_base*)':
client.cpp:(.text._ZN5boost4asio6detail12posix_thread12start_threadEPNS2_9func_baseE[_ZN5boost4asio6detail12posix_thread12start_threadEPNS2_9func_baseE]+0x2b): undefined reference to `pthread_create'
client.cpp:(.text._ZN5boost4asio6detail12posix_thread12start_threadEPNS2_9func_baseE[_ZN5boost4asio6detail12posix_thread12start_threadEPNS2_9func_baseE]+0x42): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::resolver_service_base::fork_service(boost::asio::io_service::fork_event)':
client.cpp:(.text._ZN5boost4asio6detail21resolver_service_base12fork_serviceENS0_10io_service10fork_eventE[_ZN5boost4asio6detail21resolver_service_base12fork_serviceENS0_10io_service10fork_eventE]+0x79): undefined reference to `pthread_detach'
client.cpp:(.text._ZN5boost4asio6detail21resolver_service_base12fork_serviceENS0_10io_service10fork_eventE[_ZN5boost4asio6detail21resolver_service_base12fork_serviceENS0_10io_service10fork_eventE]+0xb4): undefined reference to `pthread_join'
/tmp/ccuwyAK7.o: In function `boost::asio::detail::posix_thread::func<boost::asio::detail::resolver_service_base::work_io_service_runner>::run()':
client.cpp:(.text._ZN5boost4asio6detail12posix_thread4funcINS1_21resolver_service_base22work_io_service_runnerEE3runEv[_ZN5boost4asio6detail12posix_thread4funcINS1_21resolver_service_base22work_io_service_runnerEE3runEv]+0x1f): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o: In function `HeartbeatReceiver::run()':
client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x29): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x15b): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x17a): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x197): undefined reference to `boost::system::generic_category()'
client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x211): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x220): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x270): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x289): undefined reference to `boost::system::system_category()'
client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x2f1): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o:client.cpp:(.text._ZN17HeartbeatReceiver3runEv[_ZN17HeartbeatReceiver3runEv]+0x321): more undefined references to `boost::system::system_category()' follow
/tmp/ccuwyAK7.o: In function `main':
client.cpp:(.text.startup+0x59d): undefined reference to `boost::thread::start_thread()'
client.cpp:(.text.startup+0x5a5): undefined reference to `boost::thread::~thread()'
client.cpp:(.text.startup+0x5cc): undefined reference to `boost::system::system_category()'
client.cpp:(.text.startup+0xc96): undefined reference to `boost::this_thread::sleep(boost::posix_time::ptime const&)'
client.cpp:(.text.startup+0xec1): undefined reference to `boost::thread::thread()'
client.cpp:(.text.startup+0x1367): undefined reference to `boost::thread::~thread()'
client.cpp:(.text.startup+0x147c): undefined reference to `boost::thread::joinable() const'
client.cpp:(.text.startup+0x148e): undefined reference to `boost::thread::join()'
client.cpp:(.text.startup+0x14d7): undefined reference to `vtable for boost::detail::thread_data_base'
client.cpp:(.text.startup+0x16a2): undefined reference to `boost::thread::start_thread()'
client.cpp:(.text.startup+0x1718): undefined reference to `boost::thread::~thread()'
client.cpp:(.text.startup+0x1db1): undefined reference to `boost::this_thread::sleep(boost::posix_time::ptime const&)'
client.cpp:(.text.startup+0x2324): undefined reference to `boost::thread::~thread()'
client.cpp:(.text.startup+0x2614): undefined reference to `boost::thread::~thread()'
/tmp/ccuwyAK7.o: In function `_GLOBAL__sub_I__Z10printUsagev':
client.cpp:(.text.startup+0x28d6): undefined reference to `boost::system::generic_category()'
client.cpp:(.text.startup+0x28e0): undefined reference to `boost::system::generic_category()'
client.cpp:(.text.startup+0x28ea): undefined reference to `boost::system::system_category()'
client.cpp:(.text.startup+0x28f4): undefined reference to `boost::system::system_category()'
/tmp/ccuwyAK7.o:(.rodata+0x5cc): undefined reference to `typeinfo for boost::detail::thread_data_base'
/tmp/ccuwyAK7.o:(.rodata._ZTIN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf0Iv17HeartbeatReceiverEENS2_5list1INS2_5valueIPS6_EEEEEEEE[_ZTIN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf0Iv17HeartbeatReceiverEENS2_5list1INS2_5valueIPS6_EEEEEEEE]+0x8): undefined reference to `typeinfo for boost::detail::thread_data_base'
collect2: Fehler: ld gab 1 als Ende-Status zurück
make: *** [all] Fehler 1
libboost1.49-dev (1.49.0-3.1ubuntu1.2) wird eingerichtet ...
libboost-date-time1.49.0 (1.49.0-3.1ubuntu1.2) wird eingerichtet ...
libboost-serialization1.49.0 (1.49.0-3.1ubuntu1.2) wird eingerichtet ...
libboost-serialization1.49-dev (1.49.0-3.1ubuntu1.2) wird eingerichtet ...
libboost-date-time1.49-dev (1.49.0-3.1ubuntu1.2) wird eingerichtet ...
libboost-system1.49.0 (1.49.0-3.1ubuntu1.2) wird eingerichtet ...
libboost-system1.49-dev (1.49.0-3.1ubuntu1.2) wird eingerichtet ...
libboost-system-dev (1.49.0.1) wird eingerichtet ...
libboost-thread1.49.0 (1.49.0-3.1ubuntu1.2) wird eingerichtet ...
libboost-thread1.49-dev (1.49.0-3.1ubuntu1.2) wird eingerichtet ...
libboost-thread-dev (1.49.0.1) wird eingerichtet ...

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.