-
Notifications
You must be signed in to change notification settings - Fork 38
Closed
Description
I tried extensively with following code. Get compilation error as in this post.
any help is appreciated. Thanks you @Tradias
Code
15 #include "zprobe.grpc.pb.h"
16
17 #include <agrpc/asio_grpc.hpp>
18 #include <boost/asio/co_spawn.hpp>
19 #include <boost/asio/detached.hpp>
20 #include <boost/asio/signal_set.hpp>
21 #include <grpcpp/server.h>
22 #include <grpcpp/server_builder.h>
23
24 #include <optional>
25 #include <thread>
26 namespace asio = boost::asio;
27
28
29 // begin-snippet: server-side-helloworld
30 // ---------------------------------------------------
31 // Server-side hello world which handles exactly one request from the client before shutting down.
32 // ---------------------------------------------------
33 // end-snippet
34 int main(int argc, const char** argv)
35 {
36 const auto port = argc >= 2 ? argv[1] : "50051";
37 const auto host = std::string("0.0.0.0:") + port;
38
39 std::unique_ptr<grpc::Server> server;
40
41 grpc::ServerBuilder builder;
42 agrpc::GrpcContext grpc_context{builder.AddCompletionQueue()};
43 builder.AddListeningPort(host, grpc::InsecureServerCredentials());
44 zprobe::ProbeService::AsyncService service;
45 builder.RegisterService(&service);
46 server = builder.BuildAndStart();
47
48 asio::co_spawn(
49 grpc_context,
50 [&]() -> asio::awaitable<void>
51 {
52 grpc::ServerContext server_context;
53 helloworld::HelloRequest request;
54 grpc::ServerAsyncResponseWriter<helloworld::HelloReply> writer{&server_context};
55 co_await agrpc::request(&helloworld::Greeter::AsyncService::RequestSayHello, service, server_context,
56 request, writer, asio::use_awaitable);
57 helloworld::HelloReply response;
58 response.set_message("Hello " + request.name());
59 co_await agrpc::finish(writer, response, grpc::Status::OK, asio::use_awaitable);
60 },
61 asio::detached);
62
63 grpc_context.run();
64
65 server->Shutdown();
66 }```
**CMAKE -- Success**
cmake .. "-DCMAKE_TOOLCHAIN_FILE=~/tools/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_PREFIX_PATH=$MY_INSTALL_DIR"
**CMakeLists.txt**
```target_link_libraries(zprobe
PUBLIC zprobe_grpc_proto
${_REFLECTION}
${_GRPC_GRPCPP}
${_PROTOBUF_LIBPROTOBUF}
asio-grpc::asio-grpc-standalone-asio)
ERROR on make
[ 83%] Building CXX object CMakeFiles/zprobe.dir/grpc_asio_server.cpp.o
/home/bbhushan/work/zprobe/grpc_asio_server.cpp:26:29: error: ‘namespace asio = boost::boost::asio;’ conflicts with a previous declaration
26 | namespace asio = boost::asio;
| ^
In file included from /home/bbhushan/tools/vcpkg/installed/x64-linux/include/asio/execution/allocator.hpp:19,
from /home/bbhushan/tools/vcpkg/installed/x64-linux/include/asio/execution.hpp:18,
from /home/bbhushan/tools/vcpkg/installed/x64-linux/include/asio/any_io_executor.hpp:22,
from /home/bbhushan/tools/vcpkg/installed/x64-linux/include/agrpc/detail/asio_forward.hpp:24,
from /home/bbhushan/tools/vcpkg/installed/x64-linux/include/agrpc/detail/default_completion_token.hpp:18,
from /home/bbhushan/tools/vcpkg/installed/x64-linux/include/agrpc/default_completion_token.hpp:19,
from /home/bbhushan/tools/vcpkg/installed/x64-linux/include/agrpc/alarm.hpp:18,
from /home/bbhushan/tools/vcpkg/installed/x64-linux/include/agrpc/asio_grpc.hpp:33,
from /home/bbhushan/work/zprobe/grpc_asio_server.cpp:17:
/home/bbhushan/tools/vcpkg/installed/x64-linux/include/asio/detail/type_traits.hpp:51:11: note: previous declaration ‘namespace asio { }’
51 | namespace asio {
| ^~~~
/home/bbhushan/work/zprobe/grpc_asio_server.cpp: In function ‘int main(int, const char**)’:
/home/bbhushan/work/zprobe/grpc_asio_server.cpp:48:11: error: ‘co_spawn’ is not a member of ‘asio’
48 | asio::co_spawn(
| ^~~~~~~~
/home/bbhushan/work/zprobe/grpc_asio_server.cpp:50:24: error: ‘awaitable’ in namespace ‘asio’ does not name a template type
50 | [&]() -> asio::awaitable<void>
| ^~~~~~~~~
/home/bbhushan/work/zprobe/grpc_asio_server.cpp:50:33: error: expected ‘{’ before ‘<’ token
50 | [&]() -> asio::awaitable<void>
| ^
/home/bbhushan/work/zprobe/grpc_asio_server.cpp:50:34: error: expected primary-expression before ‘void’
50 | [&]() -> asio::awaitable<void>
| ^~~~
/home/bbhushan/work/zprobe/grpc_asio_server.cpp:61:15: error: ‘detached’ is not a member of ‘asio’; did you mean ‘boost::asio::detached’?
61 | asio::detached);
| ^~~~~~~~
In file included from /home/bbhushan/work/zprobe/grpc_asio_server.cpp:19:
/home/bbhushan/tools/vcpkg/installed/x64-linux/include/boost/asio/detached.hpp:103:22: note: ‘boost::asio::detached’ declared here
103 | constexpr detached_t detached;
| ^~~~~~~~
make[2]: *** [CMakeFiles/zprobe.dir/build.make:76: CMakeFiles/zprobe.dir/grpc_asio_server.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:111: CMakeFiles/zprobe.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
Metadata
Metadata
Assignees
Labels
No labels