Cinder-WebSocketPP error with current cinder/master

I’m trying to get ciSpacebrew working but i’m running into an issue with Cinder-WebSocketPP.

I cloned the latest cinder version (master branch) as well as the latest Cinder-WebSocketPP (https://github.com/wieden-kennedy/Cinder-WebSocketPP) from github.
I’m getting following compiling error:
cinder_master/blocks/Cinder-WebSocketPP/src/websocketpp/transport/asio/connection.hpp:442:24: No matching function for call to ‘make_shared’

I’m getting this error in my project as well as in both samples that come with the block.

Cinder-WebSocketPP block works perfectly with the cinder/release_v0.9.0 branch.
Any hints on what changed that would break that block?

Are you compiling with c++ 11 enabled?

This might be a naive answer but std::make_shared was introduced in c++ 11 so that would be something to check first.

Yes, compiling with c++ 11.
(I think cinder 0.9 wouldn’t compile without it at all.)

Actually just make sure these are defined

#define _WEBSOCKETPP_INITIALIZER_LISTS_
#define _WEBSOCKETPP_NULLPTR_
#define _WEBSOCKETPP_CPP11_FUNCTIONAL_
#define _WEBSOCKETPP_CPP11_SYSTEM_ERROR_
#define _WEBSOCKETPP_CPP11_MEMORY_
#define _WEBSOCKETPP_CPP11_THREAD_
#define _WEBSOCKETPP_CPP11_RANDOM_DEVICE_
#define _WEBSOCKETPP_CPP11_TYPE_TRAITS_

It looks like they are all already defined in WebSocketConnection.h

I’m still getting the same error.
Does the block work for you @ryanbartley?

The problem is with boost. It looks like it’s made to use boost, take out the…

#define BOOST_DATE_TIME_NO_LIB
#define BOOST_REGEX_NO_LIB

and add above all of it add…

#define ASIO_STANDALONE

Unfortunately that doesn’t fix it either.
Still throws the same error.
(At least on my computer. Does that def work for you @ryanbartley?)

I’ll pull it down today and figure out what’s going on. Sorry you’re having so much trouble.

Another data point that might be helpful - I’m not using ciSpacebrew, but I am using Cinder-WebSocketPP and cinder master branch in a current project on OS X + Windows without trouble.

Caveats:

  • I’m not 100% updated on cinder; the last commit I have is from Dec 10th, 2016
  • This project is 32-bit only
  • I brought the Cinder-WebSocketPP library into the project late, so didn’t use the Tinderbox template, but manually added the files in XCode and the User Header Search Paths ("$(CINDER_PATH)/include/asio" and ../blocks/Cinder-WebSocketPP/src). Same with Visual Studio.

He solution is actually quite simple. All credits to @ryanbartley who figured it out:

The version of websocketpp that Cinder-WebSocketPP ships with is too old.
Just switch it out to the latest master from https://github.com/zaphoyd/websocketpp/tree/master/websocketpp and all works again.

2 Likes

Made a pull request with all changes required, based on this discussion. tested on OS X and Windows.