line / stellite

Stellite project is a client library and server application that offers an easy way to develop, build, and implement client/server running primarily over the QUIC protocol developed by Google as part of the Chromium project.
Apache License 2.0
475 stars 81 forks source link

no member 'OnTaskComplete' when building for node #68

Open aaronik opened 6 years ago

aaronik commented 6 years ago

Hey y'all,

Thank you so much for building this! My company is looking for a QUIC server to use with node.js and finding stellite has been a huge boon!

Unfortunately I've been having a lot of trouble getting it to build. Here's an image of my troubles:

image

For reference, the command I'm running: ./tools/build.py --chromium-path /third_party/chromium_linux/ --target-platform linux --target node_stellite --target-type node_module --node-module-version 46 build

The error: ../../node_binder/node_http_fetcher.cc:87:10: error: no member named 'OnTaskComplete' in 'stellite::HttpFetcher'

Note this happens with our without the --node-module-version flag.

I've run into this same issue from ubuntu 14.04 and ubuntu 16.04 docker containers, although I can't see that making much of a difference.

Hopefully somebody else has run into this issue too. Thanks in advance for all your help!

haru398801 commented 6 years ago

@Aaronik

Hello. May I see your build enviromnent? This quic node server builded very limited build environment. (For example, macos hi sierra sdk can't build this project).

Thank you.

aaronik commented 6 years ago

Absolutely, I can give you a very specific build environment. And thank you for your quick response! I really appreciate your help.

The machine is a docker ubuntu 16.04 image: ubuntu:xenial. Specifically, the command to boot that is:

sudo docker run -it --rm ubuntu:xenial

Then I've installed the following libraries, which I've discovered by trial and error:

apt-get update && apt-get install -y libkrb5-dev libgconf2-dev pkg-config lsb-release curl python git build-essential libnss3-dev libfreetype6-dev

The host machine, although I don't think it should matter, is Ubuntu 18.04.

Ξ uname -a
Linux ******** 4.15.0-24-generic #26-Ubuntu SMP Wed Jun 13 08:44:47 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

I'm not sure specifically what else you need, although I can give some guesses:

root@e6e476b8e274:/# gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
root@e6e476b8e274:/# make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.