/usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/ext/string_conversions.h:45:1: note: 'errno' is defined in header ''; did you forget to '#include '?
44 | #include
+++ |+#include
45 |
In file included from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/ext/string_conversions.h:44,
from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/bits/basic_string.h:6493,
from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/string:55,
from src/crossfuncs.hpp:2,
from src/crossfuncs.cpp:1:
/usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/ext/string_conversions.h: In destructor '__gnu_cxx::__stoa(_TRet ()(const _CharT, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...)::_Save_errno::~_Save_errno()':
/usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/ext/string_conversions.h:64:23: error: 'errno' was not declared in this scope
64 |  ~_Save_errno() { if (errno == 0) errno = _M_errno; }
|                       ^~~~~
/usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/ext/string_conversions.h:64:23: note: 'errno' is defined in header ''; did you forget to '#include '?
/usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/ext/string_conversions.h: In function '_Ret __gnu_cxx::__stoa(_TRet ()(const _CharT, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...)':
/usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/ext/string_conversions.h:84:16: error: 'errno' was not declared in this scope
84 |       else if (errno == ERANGE
|                ^~~~~
/usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/ext/string_conversions.h:84:16: note: 'errno' is defined in header ''; did you forget to '#include '?
In file included from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/bits/basic_string.h:6493,
from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/string:55,
from src/crossfuncs.hpp:2,
from src/crossfuncs.cpp:1:
/usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/ext/string_conversions.h:84:25: error: 'ERANGE' was not declared in this scope; did you mean 'UV__ERANGE'?
84 |       else if (errno == ERANGE
|                         ^~~~~~
|                         UV__ERANGE
make: *** [build/crossfuncs.o] Error 1

funny, before installing libuv and adding /usr/local/include crossfuncs.cpp seemed to compile fine, or something like that

@nagalun So how do i actually fix the following to compile?
Is this a OpenSSL or LibUV or both error?
What version of GCC were you using this with?
I am using gcc-9 (Homebrew GCC 9.1.0) 9.1.0
===
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make clean
rm -f out build/Extensions.o build/Group.o build/HTTPSocket.o build/Hub.o build/Networking.o build/Node.o build/Socket.o build/WebSocket.o build/crossfuncs.o build/database.o build/limiter.o build/msg.o build/server.o build/Extensions.d build/Group.d build/HTTPSocket.d build/Hub.d build/Networking.d build/Node.d build/Socket.d build/WebSocket.d build/crossfuncs.d build/database.d build/limiter.d build/msg.d build/server.d
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make
mkdir -p build
/usr/local/cellar/gcc/9.1.0/bin/g++-9 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/Extensions.o src/Extensions.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/Group.o src/Group.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop*, void ()(uS::Poll))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (*cb)(Poll ) = (void()(Poll *)) poll->cb;
|                                                          ^~
In file included from ./src/openssl/comp.h:16,
from ./src/openssl/ssl.h:17,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/crypto.h: At global scope:
./src/openssl/crypto.h:158:7: error: expected constructor, destructor, or type conversion before 'char'
158 | const char *OpenSSL_version(int type);
|       ^~~~
In file included from ./src/openssl/ssl.h:18,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/bio.h:708:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_1_0'
708 | DEPRECATEDIN_1_1_0(int BIO_get_port(const char *str, unsigned short port_ptr))
| ^~~~~~~~~~~~~~~~~~
In file included from ./src/openssl/params.h:15,
from ./src/openssl/evp.h:20,
from ./src/openssl/x509.h:18,
from ./src/openssl/ssl.h:20,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/bn.h:336:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_0_9_8'
336 | DEPRECATEDIN_0_9_8(int
| ^~~~~~~~~~~~~~~~~~
./src/openssl/bn.h:407:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_0_9_8'
407 | DEPRECATEDIN_0_9_8(int BN_get_params(int which)) / 0, mul, 1 high, 2 low, 3
| ^~~~~~~~~~~~~~~~~~
In file included from ./src/openssl/objects.h:15,
from ./src/openssl/evp.h:31,
from ./src/openssl/x509.h:18,
from ./src/openssl/ssl.h:20,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/asn1.h:547:7: error: expected constructor, destructor, or type conversion before 'unsigned'
547 | const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x);
|       ^~~~~~~~
In file included from ./src/openssl/x509.h:22,
from ./src/openssl/ssl.h:20,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/ec.h:280:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_3'
280 | DEPRECATEDIN_3(int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p,
| ^~~~~~~~~~~~~~
./src/openssl/ec.h:550:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_3'
550 | DEPRECATEDIN_3(int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
| ^~~~~~~~~~~~~~
./src/openssl/ec.h:592:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_3'
592 | DEPRECATEDIN_3(int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group,
| ^~~~~~~~~~~~~~
./src/openssl/ec.h:1127:1: error: expected constructor, destructor, or type conversion before 'int'
1127 | int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,
| ^~~
In file included from ./src/openssl/x509.h:25,
from ./src/openssl/ssl.h:20,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/rsa.h:239:1: error: expected constructor, destructor, or type conversion before 'int'
239 | int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb);
| ^~~
In file included from ./src/openssl/dsa.h:26,
from ./src/openssl/x509.h:26,
from ./src/openssl/ssl.h:20,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/dh.h:142:1: error: expected constructor, destructor, or type conversion before 'int'
142 | int DH_generate_parameters_ex(DH *dh, int prime_len, int generator,
| ^~~
In file included from ./src/openssl/x509.h:26,
from ./src/openssl/ssl.h:20,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/dsa.h:103:1: error: expected constructor, destructor, or type conversion before 'int'
103 | int DSA_sign(int type, const unsigned char *dgst, int dlen,
| ^~~
./src/openssl/dsa.h:127:1: error: expected constructor, destructor, or type conversion before 'int'
127 | int DSA_generate_parameters_ex(DSA *dsa, int bits,
| ^~~
In file included from ./src/openssl/ssl.h:20,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/x509.h:727:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_1_0'
727 | DEPRECATEDIN_1_1_0(ASN1_TIME X509_CRL_get_nextUpdate(X509_CRL crl))
| ^~~~~~~~~~~~~~~~~~
In file included from ./src/openssl/ssl.h:26,
from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/hmac.h:33:12: error: expected constructor, destructor, or type conversion before 'int'
33 | /__owur/ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
|            ^~~
In file included from src/Networking.h:70,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
./src/openssl/ssl.h:1007:1: error: expected constructor, destructor, or type conversion before 'typedef'
1007 | typedef enum {
| ^~~~~~~
./src/openssl/ssl.h:1058:3: error: 'OSSL_HANDSHAKE_STATE' does not name a type; did you mean 'SSL_CB_HANDSHAKE_START'?
1058 | } OSSL_HANDSHAKE_STATE;
|   ^~~~~~~~~~~~~~~~~~~~
|   SSL_CB_HANDSHAKE_START
./src/openssl/ssl.h:1884:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_1_0'
1884 | DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void))
| ^~~~~~~~~~~~~~~~~~
./src/openssl/ssl.h:1899:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_1_0'
1899 | DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void))
| ^~~~~~~~~~~~~~~~~~
./src/openssl/ssl.h:2018:8: error: 'OSSL_HANDSHAKE_STATE' does not name a type; did you mean 'SSL_CB_HANDSHAKE_START'?
2018 | __owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl);
|        ^~~~~~~~~~~~~~~~~~~~
|        SSL_CB_HANDSHAKE_START
make: *** [build/Group.o] Error 1

your last error seems to be about openssl, obviously, but i really don't know how to fix these issues. can't you install libuv1 and openssl (the development and binary packages) from brew, instead of pasting them on the server source?
the compiler i'm using right now is gcc 8.3.0, but you should be able to compile the server with 9.1.0 too.

@nagalun Lol. Both are of course already installed on the system through brew.
I got pointed towards https://mta.openssl.org/pipermail/openssl-users/2018-October/009054.html
I still dont know how to resolve the OpenSSL depreciation issues im experience. (and possibly LibUV issues too), but I think its mainly OpenSSL playing up.
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ brew install libuv openssl
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/cask and caskroom/versions).
No changes to formulae.
Warning: libuv 1.29.1 is already installed and up-to-date
To reinstall 1.29.1, run brew reinstall libuv
Warning: openssl 1.0.2s is already installed and up-to-date
To reinstall 1.0.2s, run brew reinstall openssl

@nagalun Getting closer.
By the way. The MakeFile needs to include the following.
export CC=/usr/local/cellar/gcc/9.1.0/bin/gcc-9
export CXX=/usr/local/cellar/gcc/9.1.0/bin/g++-9
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
===
In file included from src/database.cpp:1:
src/server.hpp:7:10: fatal error: nlohmann/json.hpp: No such file or directory
7 | #include <nlohmann/json.hpp>
Now I am just getting general dependency errors. Which I am about to resolve.

Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make
mkdir -p build
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/database.o src/database.cpp
In file included from ./src/Backend.h:9,
from ./src/Networking.h:69,
from ./src/WebSocketProtocol.h:5,
from ./src/WebSocket.h:4,
from ./src/Group.h:4,
from ./src/Hub.h:4,
from ./src/uWS.h:4,
from src/server.hpp:1,
from src/database.cpp:1:
./src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop*, void ()(uS::Poll))':
./src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./src/Libuv.h: In lambda function:
./src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/limiter.o src/limiter.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/msg.o src/msg.cpp
In file included from ./src/Backend.h:9,
from ./src/Networking.h:69,
from ./src/WebSocketProtocol.h:5,
from ./src/WebSocket.h:4,
from ./src/Group.h:4,
from ./src/Hub.h:4,
from ./src/uWS.h:4,
from src/server.hpp:1,
from src/msg.cpp:1:
./src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./src/Libuv.h: In lambda function:
./src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/server.o src/server.cpp
In file included from ./src/Backend.h:9,
from ./src/Networking.h:69,
from ./src/WebSocketProtocol.h:5,
from ./src/WebSocket.h:4,
from ./src/Group.h:4,
from ./src/Hub.h:4,
from ./src/uWS.h:4,
from src/server.hpp:1,
from src/server.cpp:1:
./src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./src/Libuv.h: In lambda function:
./src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (*cb)(Poll ) = (void()(Poll *)) poll->cb;
|                                                          ^~
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./lib/uWebSockets -f ../uWebSockets.mk
ar rcs libuWS.a
ar: no archive members specified
usage:  ar -d [-TLsv] archive file ...
ar -m [-TLsv] archive file ...
ar -m [-abiTLsv] position archive file ...
ar -p [-TLsv] archive [file ...]
ar -q [-cTLsv] archive file ...
ar -r [-cuTLsv] archive file ...
ar -r [-abciuTLsv] position archive file ...
ar -t [-TLsv] archive [file ...]
ar -x [-ouTLsv] archive [file ...]
make[1]: *** [libuWS.a] Error 1
make: *** [lib/uWebSockets/libuWS.a] Error 2

well. ar is not wrong, no .o files were specified to create the archive, which if you look here
https://github.com/nagalun/multiplayerpiano-server/blob/master/lib/uWebSockets.mk#L16
$@ expands to the target (libuWS.a), and $^ expands to the object files, which they are set in the OBJ_FILES variable, modifying all files inside SRC_FILES by replacing all .cpp to .o
is SRC_FILES not finding anything?
you could make clean-all to also delete library build files

@nagalun Yeah I realise that. It still got the above error. It seems that the ar syntax is wrong/different from what you are using to the one that is inside Xcode on Mac.
I am trying to workout how to override ranlib to use your version.
ranlib -V
Apple Inc. version cctools-927.0.2
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: no archives specified
Usage: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib [-sactfqLT] [-] archive [...]
==
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make clean-all
rm -f out build/Extensions.o build/Group.o build/HTTPSocket.o build/Hub.o build/Networking.o build/Node.o build/Socket.o build/WebSocket.o build/crossfuncs.o build/database.o build/limiter.o build/msg.o build/server.o build/Extensions.d build/Group.d build/HTTPSocket.d build/Hub.d build/Networking.d build/Node.d build/Socket.d build/WebSocket.d build/crossfuncs.d build/database.d build/limiter.d build/msg.d build/server.d
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./lib/uWebSockets -f ../uWebSockets.mk clean
rm -f libuWS.a
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make
mkdir -p build
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/Extensions.o src/Extensions.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/Group.o src/Group.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop*, void ()(uS::Poll))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/HTTPSocket.o src/HTTPSocket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/HTTPSocket.h:4,
from src/HTTPSocket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/Hub.o src/Hub.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Hub.h:4,
from src/Hub.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/Networking.o src/Networking.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Networking.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/Node.o src/Node.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/Node.h:4,
from src/Node.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/Socket.o src/Socket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/Socket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/WebSocket.o src/WebSocket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/WebSocket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/crossfuncs.o src/crossfuncs.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/database.o src/database.cpp
In file included from ./src/Backend.h:9,
from ./src/Networking.h:69,
from ./src/WebSocketProtocol.h:5,
from ./src/WebSocket.h:4,
from ./src/Group.h:4,
from ./src/Hub.h:4,
from ./src/uWS.h:4,
from src/server.hpp:1,
from src/database.cpp:1:
./src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./src/Libuv.h: In lambda function:
./src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/limiter.o src/limiter.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/msg.o src/msg.cpp
In file included from ./src/Backend.h:9,
from ./src/Networking.h:69,
from ./src/WebSocketProtocol.h:5,
from ./src/WebSocket.h:4,
from ./src/Group.h:4,
from ./src/Hub.h:4,
from ./src/uWS.h:4,
from src/server.hpp:1,
from src/msg.cpp:1:
./src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./src/Libuv.h: In lambda function:
./src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/server.o src/server.cpp
In file included from ./src/Backend.h:9,
from ./src/Networking.h:69,
from ./src/WebSocketProtocol.h:5,
from ./src/WebSocket.h:4,
from ./src/Group.h:4,
from ./src/Hub.h:4,
from ./src/uWS.h:4,
from src/server.hpp:1,
from src/server.cpp:1:
./src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./src/Libuv.h: In lambda function:
./src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (*cb)(Poll ) = (void()(Poll *)) poll->cb;
|                                                          ^~
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./lib/uWebSockets -f ../uWebSockets.mk
ar rcs libuWS.a
ar: no archive members specified
usage:  ar -d [-TLsv] archive file ...
ar -m [-TLsv] archive file ...
ar -m [-abiTLsv] position archive file ...
ar -p [-TLsv] archive [file ...]
ar -q [-cTLsv] archive file ...
ar -r [-cuTLsv] archive file ...
ar -r [-abciuTLsv] position archive file ...
ar -t [-TLsv] archive [file ...]
ar -x [-ouTLsv] archive [file ...]
make[1]: *** [libuWS.a] Error 1
make: *** [lib/uWebSockets/libuWS.a] Error 2

No the problem isn't ar, you mixed the uws .cpp files with the server files
multiplayerpiano-server/src/WebSocket.cpp shouldn't exist, it should be in multiplayerpiano-server/lib/uWebSockets/src/WebSocket.cpp
which is created when downloading the repo's submodules

@nagalun
Not sure what you mean. Whats your discord or something? rather then messaging back and forth through here.

git submodule init
git submodule update

look, delete your copy and clone it again, this time download the submodules
add the CXX = g++ in the makefile and it should just work, provided you have the DEVELOPMENT files of openssl and libuv1 installed

@nagalun  what is your discord?
And now we are back to uv.h errors lol.
===
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make
mkdir -p build
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/crossfuncs.o src/crossfuncs.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/database.o src/database.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/database.cpp:1:
./lib/uWebSockets/src/Libuv.h:4:10: fatal error: uv.h: No such file or directory
4 | #include <uv.h>

Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make clean-all
rm -f out build/crossfuncs.o build/database.o build/limiter.o build/msg.o build/server.o build/crossfuncs.d build/database.d build/limiter.d build/msg.d build/server.d
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./lib/uWebSockets -f ../uWebSockets.mk clean
rm -f libuWS.a src/Epoll.o src/Extensions.o src/Group.o src/HTTPSocket.o src/Hub.o src/Networking.o src/Node.o src/Room.o src/Socket.o src/WebSocket.o src/Epoll.d src/Extensions.d src/Group.d src/HTTPSocket.d src/Hub.d src/Networking.d src/Node.d src/Room.d src/Socket.d src/WebSocket.d
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make
mkdir -p build
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/crossfuncs.o src/crossfuncs.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/database.o src/database.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/database.cpp:1:
./lib/uWebSockets/src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop*, void ()(uS::Poll))':
./lib/uWebSockets/src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./lib/uWebSockets/src/Libuv.h: In lambda function:
./lib/uWebSockets/src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/limiter.o src/limiter.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/msg.o src/msg.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/msg.cpp:1:
./lib/uWebSockets/src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./lib/uWebSockets/src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./lib/uWebSockets/src/Libuv.h: In lambda function:
./lib/uWebSockets/src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/server.o src/server.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/server.cpp:1:
./lib/uWebSockets/src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./lib/uWebSockets/src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./lib/uWebSockets/src/Libuv.h: In lambda function:
./lib/uWebSockets/src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./lib/uWebSockets -f ../uWebSockets.mk
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Epoll.o src/Epoll.cpp
In file included from src/Backend.h:9,
from src/Epoll.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Extensions.o src/Extensions.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Group.o src/Group.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/HTTPSocket.o src/HTTPSocket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/HTTPSocket.h:4,
from src/HTTPSocket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Hub.o src/Hub.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Hub.h:4,
from src/Hub.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Networking.o src/Networking.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Networking.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Node.o src/Node.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/Node.h:4,
from src/Node.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Room.o src/Room.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Room.h:7,
from src/Room.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Socket.o src/Socket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/Socket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/WebSocket.o src/WebSocket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/WebSocket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
ar rcs libuWS.a src/Epoll.o src/Extensions.o src/Group.o src/HTTPSocket.o src/Hub.o src/Networking.o src/Node.o src/Room.o src/Socket.o src/WebSocket.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libuWS.a(Epoll.o) has no symbols
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-L/usr/local/opt/openssl/lib" -L ./lib/uWebSockets/ -s -o out build/crossfuncs.o build/database.o build/limiter.o build/msg.o build/server.o lib/uWebSockets/libuWS.a -lssl -lz -lcrypto -ldl -lpthread
ld: warning: option -s is obsolete and being ignored
Undefined symbols for architecture x86_64:
"_uv_async_init", referenced from:
uWS::Group::addAsync()    in libuWS.a(Group.o)
uWS::Group::listen(uWS::ListenOptions)    in libuWS.a(Group.o)
uWS::Group::addAsync()   in libuWS.a(Group.o)
uWS::Group::listen(uWS::ListenOptions)   in libuWS.a(Group.o)
"_uv_async_send", referenced from:
uS::Socket::transfer(uS::NodeData, void ()(uS::Poll*))::{lambda(uS::Poll*)#1}::_FUN(uS::Poll*) in libuWS.a(WebSocket.o)
uWS::WebSocket::sendPrepared(uWS::WebSocket::PreparedMessage*, void*) in libuWS.a(WebSocket.o)
uWS::WebSocket::sendPrepared(uWS::WebSocket::PreparedMessage*, void*) in libuWS.a(WebSocket.o)
uWS::WebSocket::send(char const*, unsigned long, uWS::OpCode, void ()(uWS::WebSocket, void*, bool, void*), void*, bool) in libuWS.a(WebSocket.o)
uWS::WebSocket::send(char const*, unsigned long, uWS::OpCode, void ()(uWS::WebSocket, void*, bool, void*), void*, bool) in libuWS.a(WebSocket.o)
uWS::HttpSocket::upgrade(char const*, char const*, unsigned long, char const*, unsigned long, bool*) in libuWS.a(HTTPSocket.o)
uWS::HttpSocket::upgrade(char const*, char const*, unsigned long, char const*, unsigned long, bool*) in libuWS.a(HTTPSocket.o)
...
"_uv_close", referenced from:
uS::Socket::startTimeout<&uWS::HttpSocket::onEnd>(int)::{lambda(uS::Timer*)#1}::_FUN(uS::Timer*) in libuWS.a(Hub.o)
void uS::Node::accept_timer_cb<&uWS::Hub::onServerAccept>(uS::Timer*)                      in libuWS.a(Hub.o)
uWS::Group::removeHttpSocket(uWS::HttpSocket)     in libuWS.a(Group.o)
uWS::Group::stopListening()     in libuWS.a(Group.o)
uWS::Group::removeHttpSocket(uWS::HttpSocket)   in libuWS.a(Group.o)
uWS::Group::stopListening()    in libuWS.a(Group.o)
uWS::Group::close(int, char*, unsigned long) in libuWS.a(Group.o)
...
"_uv_default_loop", referenced from:
uS::Node::Node(int, int, int, bool) in libuWS.a(Node.o)
uS::Node::~Node() in libuWS.a(Node.o)
"_uv_is_closing", referenced from:
void uS::Socket::sslIoHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::sslIoHandler<uWS::WebSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::sslIoHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
uWS::WebSocket::handleFragment(char*, unsigned long, unsigned int, int, bool, uWS::WebSocketState) in libuWS.a(WebSocket.o)
uWS::WebSocket::onData(uS::Socket, char*, unsigned long) in libuWS.a(WebSocket.o)
uWS::WebSocket::handleFragment(char*, unsigned long, unsigned int, int, bool, uWS::WebSocketState) in libuWS.a(WebSocket.o)
uWS::WebSocket::onData(uS::Socket, char*, unsigned long) in libuWS.a(WebSocket.o)
...
"_uv_loop_delete", referenced from:
uS::Node::~Node() in libuWS.a(Node.o)
"_uv_loop_new", referenced from:
uS::Node::Node(int, int, int, bool) in libuWS.a(Node.o)
"_uv_poll_init_socket", referenced from:
uS::NodeData::asyncCallback(uS::Async*)     in libuWS.a(Node.o)
void uS::Node::accept_poll_cb<&uWS::Hub::onServerAccept>(uS::Poll*, int, int)              in libuWS.a(Hub.o)
void uS::Node::accept_timer_cb<&uWS::Hub::onServerAccept>(uS::Timer*)                      in libuWS.a(Hub.o)
uWS::Hub::upgrade(int, char const*, ssl_st*, char const*, unsigned long, char const*, unsigned long, uWS::Group) in libuWS.a(Hub.o)
uWS::Hub::listen(char const, int, uS::TLS::Context, int, uWS::Group) in libuWS.a(Hub.o)
uWS::Hub::connect(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, int, uWS::Group) in libuWS.a(Hub.o)
uWS::Hub::listen(int, uS::TLS::Context, int, uWS::Group) in libuWS.a(Hub.o)
...
"_uv_poll_start", referenced from:
uS::NodeData::asyncCallback(uS::Async*)     in libuWS.a(Node.o)
void uS::Node::connect_cb<&uWS::Hub::onClientConnection>(uS::Poll*, int, int)               in libuWS.a(Hub.o)
void uS::Socket::sslIoHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::ioHandler<uWS::WebSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::ioHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::ioHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::sslIoHandler<uWS::WebSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
...
"_uv_poll_stop", referenced from:
void uS::Node::accept_poll_cb<&uWS::Hub::onServerAccept>(uS::Poll*, int, int)              in libuWS.a(Hub.o)
uWS::Group::stopListening()     in libuWS.a(Group.o)
uWS::WebSocket::onEnd(uS::Socket*)     in libuWS.a(WebSocket.o)
uWS::WebSocket::transfer(uWS::Group)   in libuWS.a(WebSocket.o)
uWS::WebSocket::onEnd(uS::Socket)    in libuWS.a(WebSocket.o)
uWS::WebSocket::transfer(uWS::Group) in libuWS.a(WebSocket.o)
uWS::HttpSocket::onEnd(uS::Socket)      in libuWS.a(HTTPSocket.o)
...
"_uv_run", referenced from:
uS::Node::run()    in libuWS.a(Node.o)
uS::Node::poll()    in libuWS.a(Node.o)
"_uv_timer_init", referenced from:
void uS::Node::accept_poll_cb<&uWS::Hub::onServerAccept>(uS::Poll*, int, int)              in libuWS.a(Hub.o)
uWS::Hub::connect(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, int, uWS::Group) in libuWS.a(Hub.o)
uWS::Group::addHttpSocket(uWS::HttpSocket)     in libuWS.a(Group.o)
uWS::Group::startAutoPing(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) in libuWS.a(Group.o)
uWS::Group::addHttpSocket(uWS::HttpSocket)   in libuWS.a(Group.o)
uWS::Group::startAutoPing(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) in libuWS.a(Group.o)
uWS::WebSocket::close(int, char const, unsigned long) in libuWS.a(WebSocket.o)
...
"_uv_timer_start", referenced from:
void uS::Node::accept_poll_cb<&uWS::Hub::onServerAccept>(uS::Poll*, int, int)              in libuWS.a(Hub.o)
uWS::Hub::connect(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, int, uWS::Group) in libuWS.a(Hub.o)
uWS::Group::addHttpSocket(uWS::HttpSocket)     in libuWS.a(Group.o)
uWS::Group::startAutoPing(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) in libuWS.a(Group.o)
uWS::Group::addHttpSocket(uWS::HttpSocket)   in libuWS.a(Group.o)
uWS::Group::startAutoPing(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) in libuWS.a(Group.o)
uWS::WebSocket::close(int, char const, unsigned long) in libuWS.a(WebSocket.o)
...
"_uv_timer_stop", referenced from:
uS::Socket::startTimeout<&uWS::HttpSocket::onEnd>(int)::{lambda(uS::Timer*)#1}::_FUN(uS::Timer*) in libuWS.a(Hub.o)
void uS::Node::accept_timer_cb<&uWS::Hub::onServerAccept>(uS::Timer*)                      in libuWS.a(Hub.o)
uWS::Group::removeHttpSocket(uWS::HttpSocket)     in libuWS.a(Group.o)
uWS::Group::stopListening()     in libuWS.a(Group.o)
uWS::Group::removeHttpSocket(uWS::HttpSocket)   in libuWS.a(Group.o)
uWS::Group::close(int, char*, unsigned long) in libuWS.a(Group.o)
uWS::Group::close(int, char*, unsigned long) in libuWS.a(Group.o)
...
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make: *** [out] Error 1

@nagalun Now whats happening?
===
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make clean-all
rm -f out build/crossfuncs.o build/database.o build/limiter.o build/msg.o build/server.o build/crossfuncs.d build/database.d build/limiter.d build/msg.d build/server.d
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./lib/uWebSockets -f ../uWebSockets.mk clean
rm -f libuWS.a src/Epoll.o src/Extensions.o src/Group.o src/HTTPSocket.o src/Hub.o src/Networking.o src/Node.o src/Room.o src/Socket.o src/WebSocket.o src/Epoll.d src/Extensions.d src/Group.d src/HTTPSocket.d src/Hub.d src/Networking.d src/Node.d src/Room.d src/Socket.d src/WebSocket.d
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make
mkdir -p build
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/crossfuncs.o src/crossfuncs.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/database.o src/database.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/database.cpp:1:
./lib/uWebSockets/src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop*, void ()(uS::Poll))':
./lib/uWebSockets/src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./lib/uWebSockets/src/Libuv.h: In lambda function:
./lib/uWebSockets/src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/limiter.o src/limiter.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/msg.o src/msg.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/msg.cpp:1:
./lib/uWebSockets/src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./lib/uWebSockets/src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./lib/uWebSockets/src/Libuv.h: In lambda function:
./lib/uWebSockets/src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/server.o src/server.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/server.cpp:1:
./lib/uWebSockets/src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./lib/uWebSockets/src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./lib/uWebSockets/src/Libuv.h: In lambda function:
./lib/uWebSockets/src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./lib/uWebSockets -f ../uWebSockets.mk
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Epoll.o src/Epoll.cpp
In file included from src/Backend.h:9,
from src/Epoll.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Extensions.o src/Extensions.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Group.o src/Group.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/HTTPSocket.o src/HTTPSocket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/HTTPSocket.h:4,
from src/HTTPSocket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Hub.o src/Hub.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Hub.h:4,
from src/Hub.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Networking.o src/Networking.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Networking.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Node.o src/Node.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/Node.h:4,
from src/Node.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Room.o src/Room.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Room.h:7,
from src/Room.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Socket.o src/Socket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/Socket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/WebSocket.o src/WebSocket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/WebSocket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
ar rcs libuWS.a src/Epoll.o src/Extensions.o src/Group.o src/HTTPSocket.o src/Hub.o src/Networking.o src/Node.o src/Room.o src/Socket.o src/WebSocket.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libuWS.a(Epoll.o) has no symbols
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-L/usr/local/opt/openssl/lib" -L ./lib/uWebSockets/ -s -o out build/crossfuncs.o build/database.o build/limiter.o build/msg.o build/server.o lib/uWebSockets/libuWS.a -lssl -lz -lcrypto -ldl -lpthread
ld: warning: option -s is obsolete and being ignored
Undefined symbols for architecture x86_64:
"_uv_async_init", referenced from:
uWS::Group::addAsync()    in libuWS.a(Group.o)
uWS::Group::listen(uWS::ListenOptions)    in libuWS.a(Group.o)
uWS::Group::addAsync()   in libuWS.a(Group.o)
uWS::Group::listen(uWS::ListenOptions)   in libuWS.a(Group.o)
"_uv_async_send", referenced from:
uS::Socket::transfer(uS::NodeData, void ()(uS::Poll*))::{lambda(uS::Poll*)#1}::_FUN(uS::Poll*) in libuWS.a(WebSocket.o)
uWS::WebSocket::sendPrepared(uWS::WebSocket::PreparedMessage*, void*) in libuWS.a(WebSocket.o)
uWS::WebSocket::sendPrepared(uWS::WebSocket::PreparedMessage*, void*) in libuWS.a(WebSocket.o)
uWS::WebSocket::send(char const*, unsigned long, uWS::OpCode, void ()(uWS::WebSocket, void*, bool, void*), void*, bool) in libuWS.a(WebSocket.o)
uWS::WebSocket::send(char const*, unsigned long, uWS::OpCode, void ()(uWS::WebSocket, void*, bool, void*), void*, bool) in libuWS.a(WebSocket.o)
uWS::HttpSocket::upgrade(char const*, char const*, unsigned long, char const*, unsigned long, bool*) in libuWS.a(HTTPSocket.o)
uWS::HttpSocket::upgrade(char const*, char const*, unsigned long, char const*, unsigned long, bool*) in libuWS.a(HTTPSocket.o)
...
"_uv_close", referenced from:
uS::Socket::startTimeout<&uWS::HttpSocket::onEnd>(int)::{lambda(uS::Timer*)#1}::_FUN(uS::Timer*) in libuWS.a(Hub.o)
void uS::Node::accept_timer_cb<&uWS::Hub::onServerAccept>(uS::Timer*)                      in libuWS.a(Hub.o)
uWS::Group::removeHttpSocket(uWS::HttpSocket)     in libuWS.a(Group.o)
uWS::Group::stopListening()     in libuWS.a(Group.o)
uWS::Group::removeHttpSocket(uWS::HttpSocket)   in libuWS.a(Group.o)
uWS::Group::stopListening()    in libuWS.a(Group.o)
uWS::Group::close(int, char*, unsigned long) in libuWS.a(Group.o)
...
"_uv_default_loop", referenced from:
uS::Node::Node(int, int, int, bool) in libuWS.a(Node.o)
uS::Node::~Node() in libuWS.a(Node.o)
"_uv_is_closing", referenced from:
void uS::Socket::sslIoHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::sslIoHandler<uWS::WebSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::sslIoHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
uWS::WebSocket::handleFragment(char*, unsigned long, unsigned int, int, bool, uWS::WebSocketState) in libuWS.a(WebSocket.o)
uWS::WebSocket::onData(uS::Socket, char*, unsigned long) in libuWS.a(WebSocket.o)
uWS::WebSocket::handleFragment(char*, unsigned long, unsigned int, int, bool, uWS::WebSocketState) in libuWS.a(WebSocket.o)
uWS::WebSocket::onData(uS::Socket, char*, unsigned long) in libuWS.a(WebSocket.o)
...
"_uv_loop_delete", referenced from:
uS::Node::~Node() in libuWS.a(Node.o)
"_uv_loop_new", referenced from:
uS::Node::Node(int, int, int, bool) in libuWS.a(Node.o)
"_uv_poll_init_socket", referenced from:
uS::NodeData::asyncCallback(uS::Async*)     in libuWS.a(Node.o)
void uS::Node::accept_poll_cb<&uWS::Hub::onServerAccept>(uS::Poll*, int, int)              in libuWS.a(Hub.o)
void uS::Node::accept_timer_cb<&uWS::Hub::onServerAccept>(uS::Timer*)                      in libuWS.a(Hub.o)
uWS::Hub::upgrade(int, char const*, ssl_st*, char const*, unsigned long, char const*, unsigned long, uWS::Group) in libuWS.a(Hub.o)
uWS::Hub::listen(char const, int, uS::TLS::Context, int, uWS::Group) in libuWS.a(Hub.o)
uWS::Hub::connect(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, int, uWS::Group) in libuWS.a(Hub.o)
uWS::Hub::listen(int, uS::TLS::Context, int, uWS::Group) in libuWS.a(Hub.o)
...
"_uv_poll_start", referenced from:
uS::NodeData::asyncCallback(uS::Async*)     in libuWS.a(Node.o)
void uS::Node::connect_cb<&uWS::Hub::onClientConnection>(uS::Poll*, int, int)               in libuWS.a(Hub.o)
void uS::Socket::sslIoHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::ioHandler<uWS::WebSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::ioHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::ioHandler<uWS::HttpSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
void uS::Socket::sslIoHandler<uWS::WebSocket >(uS::Poll*, int, int) in libuWS.a(Hub.o)
...
"_uv_poll_stop", referenced from:
void uS::Node::accept_poll_cb<&uWS::Hub::onServerAccept>(uS::Poll*, int, int)              in libuWS.a(Hub.o)
uWS::Group::stopListening()     in libuWS.a(Group.o)
uWS::WebSocket::onEnd(uS::Socket*)     in libuWS.a(WebSocket.o)
uWS::WebSocket::transfer(uWS::Group)   in libuWS.a(WebSocket.o)
uWS::WebSocket::onEnd(uS::Socket)    in libuWS.a(WebSocket.o)
uWS::WebSocket::transfer(uWS::Group) in libuWS.a(WebSocket.o)
uWS::HttpSocket::onEnd(uS::Socket)      in libuWS.a(HTTPSocket.o)
...
"_uv_run", referenced from:
uS::Node::run()    in libuWS.a(Node.o)
uS::Node::poll()    in libuWS.a(Node.o)
"_uv_timer_init", referenced from:
void uS::Node::accept_poll_cb<&uWS::Hub::onServerAccept>(uS::Poll*, int, int)              in libuWS.a(Hub.o)
uWS::Hub::connect(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, int, uWS::Group) in libuWS.a(Hub.o)
uWS::Group::addHttpSocket(uWS::HttpSocket)     in libuWS.a(Group.o)
uWS::Group::startAutoPing(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) in libuWS.a(Group.o)
uWS::Group::addHttpSocket(uWS::HttpSocket)   in libuWS.a(Group.o)
uWS::Group::startAutoPing(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) in libuWS.a(Group.o)
uWS::WebSocket::close(int, char const, unsigned long) in libuWS.a(WebSocket.o)
...
"_uv_timer_start", referenced from:
void uS::Node::accept_poll_cb<&uWS::Hub::onServerAccept>(uS::Poll*, int, int)              in libuWS.a(Hub.o)
uWS::Hub::connect(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, void*, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >, int, uWS::Group) in libuWS.a(Hub.o)
uWS::Group::addHttpSocket(uWS::HttpSocket)     in libuWS.a(Group.o)
uWS::Group::startAutoPing(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) in libuWS.a(Group.o)
uWS::Group::addHttpSocket(uWS::HttpSocket)   in libuWS.a(Group.o)
uWS::Group::startAutoPing(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) in libuWS.a(Group.o)
uWS::WebSocket::close(int, char const, unsigned long) in libuWS.a(WebSocket.o)
...
"_uv_timer_stop", referenced from:
uS::Socket::startTimeout<&uWS::HttpSocket::onEnd>(int)::{lambda(uS::Timer*)#1}::_FUN(uS::Timer*) in libuWS.a(Hub.o)
void uS::Node::accept_timer_cb<&uWS::Hub::onServerAccept>(uS::Timer*)                      in libuWS.a(Hub.o)
uWS::Group::removeHttpSocket(uWS::HttpSocket)     in libuWS.a(Group.o)
uWS::Group::stopListening()     in libuWS.a(Group.o)
uWS::Group::removeHttpSocket(uWS::HttpSocket)   in libuWS.a(Group.o)
uWS::Group::close(int, char*, unsigned long) in libuWS.a(Group.o)
uWS::Group::close(int, char*, unsigned long) in libuWS.a(Group.o)
...
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make: *** [out] Error 1

don't touch anything just add -luv to this line https://github.com/nagalun/multiplayerpiano-server/blob/master/Makefile#L28

@nagalun Changed it. still errors.
ifeq ($(OS),Windows_NT)
LDLIBS += -luv -lWs2_32 -lpsapi -liphlpapi -luserenv
else
LDLIBS += -ldl -lpthread -luv
endif
===
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make clean-all
rm -f out build/crossfuncs.o build/database.o build/limiter.o build/msg.o build/server.o build/crossfuncs.d build/database.d build/limiter.d build/msg.d build/server.d
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./lib/uWebSockets -f ../uWebSockets.mk clean
rm -f libuWS.a src/Epoll.o src/Extensions.o src/Group.o src/HTTPSocket.o src/Hub.o src/Networking.o src/Node.o src/Room.o src/Socket.o src/WebSocket.o src/Epoll.d src/Extensions.d src/Group.d src/HTTPSocket.d src/Hub.d src/Networking.d src/Node.d src/Room.d src/Socket.d src/WebSocket.d
Daniels-MAC-Desktop-Gigabyte-GA-Z77X-UD5H:multiplayerpiano-server Daniel$ make
mkdir -p build
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/crossfuncs.o src/crossfuncs.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/database.o src/database.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/database.cpp:1:
./lib/uWebSockets/src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop*, void ()(uS::Poll))':
./lib/uWebSockets/src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./lib/uWebSockets/src/Libuv.h: In lambda function:
./lib/uWebSockets/src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/limiter.o src/limiter.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/msg.o src/msg.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/msg.cpp:1:
./lib/uWebSockets/src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./lib/uWebSockets/src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./lib/uWebSockets/src/Libuv.h: In lambda function:
./lib/uWebSockets/src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/server.o src/server.cpp
In file included from ./lib/uWebSockets/src/Backend.h:9,
from ./lib/uWebSockets/src/Networking.h:69,
from ./lib/uWebSockets/src/WebSocketProtocol.h:5,
from ./lib/uWebSockets/src/WebSocket.h:4,
from ./lib/uWebSockets/src/Group.h:4,
from ./lib/uWebSockets/src/Hub.h:4,
from ./lib/uWebSockets/src/uWS.h:4,
from src/server.hpp:1,
from src/server.cpp:1:
./lib/uWebSockets/src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
./lib/uWebSockets/src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
./lib/uWebSockets/src/Libuv.h: In lambda function:
./lib/uWebSockets/src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./lib/uWebSockets -f ../uWebSockets.mk
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Epoll.o src/Epoll.cpp
In file included from src/Backend.h:9,
from src/Epoll.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Extensions.o src/Extensions.cpp
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Group.o src/Group.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Group.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/HTTPSocket.o src/HTTPSocket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/HTTPSocket.h:4,
from src/HTTPSocket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Hub.o src/Hub.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Group.h:4,
from src/Hub.h:4,
from src/Hub.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Networking.o src/Networking.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Networking.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Node.o src/Node.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/Node.h:4,
from src/Node.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Room.o src/Room.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/Room.h:7,
from src/Room.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/Socket.o src/Socket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/Socket.h:4,
from src/Socket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (cb)(Poll ) = (void()(Poll )) poll->cb;
|                                                          ^~
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-I/usr/local/opt/openssl/include" -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -std=c++11 -O3 -I ./src/ -MMD -MP -c -o src/WebSocket.o src/WebSocket.cpp
In file included from src/Backend.h:9,
from src/Networking.h:69,
from src/WebSocketProtocol.h:5,
from src/WebSocket.h:4,
from src/WebSocket.cpp:1:
src/Libuv.h: In member function 'void uS::Poll::close(uS::Loop, void ()(uS::Poll*))':
src/Libuv.h:172:48: warning: cast between incompatible function types from 'void ()(uS::Poll)' to 'void ()(uS::Poll, int, int)' [-Wcast-function-type]
172 |         this->cb = (void()(Poll , int, int)) cb;
|                                                ^~
src/Libuv.h: In lambda function:
src/Libuv.h:175:58: warning: cast between incompatible function types from 'void ()(uS::Poll, int, int)' to 'void ()(uS::Poll)' [-Wcast-function-type]
175 |             void (*cb)(Poll ) = (void()(Poll *)) poll->cb;
|                                                          ^~
ar rcs libuWS.a src/Epoll.o src/Extensions.o src/Group.o src/HTTPSocket.o src/Hub.o src/Networking.o src/Node.o src/Room.o src/Socket.o src/WebSocket.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libuWS.a(Epoll.o) has no symbols
/usr/local/cellar/gcc/9.1.0/bin/g++-9 "-L/usr/local/opt/openssl/lib" -L ./lib/uWebSockets/ -s -o out build/crossfuncs.o build/database.o build/limiter.o build/msg.o build/server.o lib/uWebSockets/libuWS.a -lssl -lz -lcrypto -ldl -lpthread -luv
ld: warning: option -s is obsolete and being ignored
ld: library not found for -luv
collect2: error: ld returned 1 exit status
make: *** [out] Error 1

paste in code block pls (put ``` before and after)

btw is this a hackintosh? 😄

@nagalun I even tried upgrading from uWebSockets-0.15 to uWebSockets-0.16.0a4 and now getting the following errors. I really dont understand whats happening. Any suggestions?
newerror.txt

@nagalun NOTE: They have updated the MakeFile there now to better support OSX. Not sure where to put it in your script tho.
Anyway, getting closer when adding the following to my MakeFile
export CC=/usr/local/cellar/gcc/9.1.0/bin/gcc-9
export CXX=/usr/local/cellar/gcc/9.1.0/bin/g++-9
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/include/openssl -I/usr/local/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"

But still getting the following errors. Not sure why its not properly linking to my openssl in the system. ( /usr/local/include/openssl )
./lib/uWebSockets/src/Networking.h:7:10: fatal error: openssl/opensslv.h: No such file or directory
7 | #include <openssl/opensslv.h>
|          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [build/database.o] Error 1

you must use uws v0.14, the next versions change the api and break my code.
https://github.com/nagalun/multiplayerpiano-server/issues/19#issuecomment-504555195
you had it here, you only needed to install libuv correctly, or specify where the libuv.a or however it's called in a -L parameter to LDFLAGS

Are you planning on updating your code to work with v0.16.0 Alpha 5?
0.14 is rather old. I will try with 0.14 again.
https://github.com/uNetworking/uWebSockets

just use the version that comes with the repo, those versions are fine. you're touching unrelated stuff. revert back to the state you had in the #19 comment and point the compiler where libuv is

it fixes for macos for that specific version, but building works on the current one, as you might have noticed, libuWS.a is created, that means uwebsocket compiles fine. the warnings you see in #19 are not errors and it builds fine, it just can't find libuv.
if you can't figure out how to install libuv it's not really my problem anymore

I will update some day, but for now I don't see anything worthy of rewriting part of the servers (for mpp, owop, and cursors) to upgrade the lib, since i have custom patches written for uwebsockets v0.14 that would need to be rewritten for the next versions.
once alex adds unix sockets support and it gets as stable as v0.14 i'll be more interested in upgrading

yeah reproduced on freshly installed mojave with command line tools just installed
$ make
mkdir -p build
c++ -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/crossfuncs.o src/crossfuncs.cpp
c++ -std=c++11 -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -MMD -MP -I ./src/ -I ./lib/uWebSockets/src/ -I ./lib/json/include/ -O2 -c -o build/database.o src/database.cpp
In file included from src/database.cpp:1:
In file included from ./src/server.hpp:1:
In file included from ./lib/uWebSockets/src/uWS.h:4:
In file included from ./lib/uWebSockets/src/Hub.h:4:
In file included from ./lib/uWebSockets/src/Group.h:4:
In file included from ./lib/uWebSockets/src/WebSocket.h:4:
In file included from ./lib/uWebSockets/src/WebSocketProtocol.h:5:
./lib/uWebSockets/src/Networking.h:7:10: fatal error: 'openssl/opensslv.h' file
      not found
#include <openssl/opensslv.h>
         ^~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [build/database.o] Error 1

yea well openssl is not getting installed properly
do find / -name "opensslv.h" and find where brew installs it