served icon indicating copy to clipboard operation
served copied to clipboard

compile example cpp got #include <served/served.hpp> file not found

Open a2232189 opened this issue 6 years ago • 2 comments

Have followed the instruction:

  1. installed Boost
  2. Ran command below $ git clone [email protected]:meltwater/served.git $ mkdir served.build && cd served.build $ cmake ../served && make
  3. create a file name a.cpp, whose content is

#include <served/served.hpp>

int main(int argc, char const* argv[]) { // Create a multiplexer for handling requests served::multiplexer mux;

// GET /hello
mux.handle("/hello")
	.get([](served::response & res, const served::request & req) {
		res << "Hello world!";
	});

// Create the server and run with 10 handler threads.
served::net::server server("127.0.0.1", "8080", mux);
server.run(10);

return (EXIT_SUCCESS);

}

  1. g++ a.cpp, got

a.cpp:1:10: fatal error: 'served/served.hpp' file not found #include <served/served.hpp> ^~~~~~~~~~~~~~~~~~~ 1 error generated.

Where should I put a.cpp? Maybe it's because of the wrong file location..

a2232189 avatar Aug 21 '18 09:08 a2232189

After cmake ../served && make call sudo make install from /served folder

rehovicova avatar Jul 09 '20 12:07 rehovicova

Hello :)

Once I have done these steps, including sudo make install. I run into an issue : when I compile

` #include <served/served.hpp> int main(int argc, const char * argv[]) {

  //served::multiplexer mux;
  return (EXIT_SUCCESS);

} ` It works (linking succesful) but as soon as I uncomment the mux line this is occuring

Undefined symbols for architecture x86_64: "served::multiplexer::multiplexer()", referenced from: _main in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

I also tried without served:: ` #include <served/served.hpp> int main(int argc, const char * argv[]) {

multiplexer mux;
return (EXIT_SUCCESS);

} `

which let me on the "error"

error: unknown type name 'multiplexer'; did you mean 'served::multiplexer'? multiplexer mux; ^~~~~~~~~~~ served::multiplexer /usr/local/include/served/multiplexer.hpp:53:7: note: 'served::multiplexer' declared here class multiplexer

that confirmed that the installation worked, since it could suggest automatically the right space name

So, what can I do ? is it because there is a missing option in my compiling process ? I just compile with clang++ -std=c++17

thanks

DaMenestrel avatar Oct 04 '20 23:10 DaMenestrel