zeromq / zmqpp

0mq 'highlevel' C++ bindings
http://zeromq.github.io/zmqpp
Mozilla Public License 2.0
438 stars 197 forks source link

Compile error: zmqpp::frame::frame(const zmqpp::frame&) is private. #93

Closed Free-Devel closed 9 years ago

Free-Devel commented 9 years ago

Hi, I'm trying to compile zmqpp with gcc (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)) but I get this error:

g++ -MMD -std=c++0x -pipe -Wall -fPIC -DBUILD_ENV=max -DBUILD_DATESTAMP='"2014-12-03 09:49"' -DBUILD_LIBRARY_NAME='"zmqpp"' -DBUILD_CLIENT_NAME='"zmqpp"' -I./src -I/home/fews0_app/dev/zeromq-4.1.0/include -O3 -funroll-loops -ffast-math -finline-functions -fomit-frame-pointer -DNDEBUG -c -o build/max-g++/obj/zmqpp/message.o src/zmqpp/message.cpp In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/vector:69, from src/zmqpp/message.hpp:15, from src/zmqpp/message.cpp:11: src/zmqpp/frame.hpp: In member function ‘void std::vector<_Tp, _Alloc>::_M_fill_insert(gnu_cxx::normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, size_t, const _Tp&) [with _Tp = zmqpp::frame, _Alloc = std::allocatorzmqpp::frame]’: /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_vector.h:851: instantiated from ‘void std::vector<_Tp, _Alloc>::insert(gnu_cxx::normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, size_t, const _Tp&) [with _Tp = zmqpp::frame, _Alloc = std::allocatorzmqpp::frame]’ /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_vector.h:557: instantiated from ‘void std::vector<_Tp, _Alloc>::resize(size_t, _Tp) [with _Tp = zmqpp::frame, _Alloc = std::allocatorzmqpp::frame]’ src/zmqpp/message.cpp:444: instantiated from here src/zmqpp/frame.hpp:52: error: ‘zmqpp::frame::frame(const zmqpp::frame&)’ is private

Can you help me?

Thank you, Mirko Cambi

xaqq commented 9 years ago

src/zmqpp/frame.hpp:52: error: ‘zmqpp::frame::frame(const zmqpp::frame&)’ is private

Indeed frame copy constructor is disabled. This is weird. Did you/can you try with a more recent version of gcc?

Free-Devel commented 9 years ago

I've asked to my server admin to install gcc 4.9.2, but I hoped to avoid it.

Thanks

xaqq commented 9 years ago

I've asked to my server admin to install gcc 4.9.2, but I hoped to avoid it.

It seems that gcc 4.4 is a bit too old and only supported a few parts of c++11. It looks like something >=4.7 is recommended for c++11: you'd be able to avoid 4.9.2 but I assume you wanted to avoid installing any other version of gcc, not 4.9 in particular.