Hey thanks! 
I think I've figured it out.
First I downgraded to gcc-7 as well as g++-7

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave 
/usr/bin/g++ g++ /usr/bin/g++-7 --slave /usr/bin/gcov gcov /usr/bin/gcov-7

Then I set gcc-7 with highest priority

sudo update-alternatives --config gcc

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path            Priority   Status
------------------------------------------------------------
  0            /usr/bin/gcc-9   90        auto mode
  1            /usr/bin/gcc-7   70        manual mode
* 2            /usr/bin/gcc-9   90        manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/gcc-7 to provide /usr/bin/gcc (gcc) in 
manual mode

Then sudo make install at the root directory of grpc/ and I didn't get any 
errors.

Changed directories to the examples examples/cpp/helloworld and ran make 
against the helloworld examples.


~/Project3/grpc/examples/cpp/helloworld(9dfbd34f5c ✔) make       
protoc -I ../../protos --cpp_out=. ../../protos/helloworld.proto
g++ -std=c++11 `pkg-config --cflags protobuf grpc`  -c -o helloworld.pb.o 
helloworld.pb.cc
protoc -I ../../protos --grpc_out=. --plugin=protoc-gen-grpc=`which 
grpc_cpp_plugin` ../../protos/helloworld.proto
g++ -std=c++11 `pkg-config --cflags protobuf grpc`  -c -o helloworld.grpc.pb.o 
helloworld.grpc.pb.cc
g++ -std=c++11 `pkg-config --cflags protobuf grpc`  -c -o greeter_client.o 
greeter_client.cc
g++ helloworld.pb.o helloworld.grpc.pb.o greeter_client.o -L/usr/local/lib 
`pkg-config --libs protobuf grpc++ grpc` -Wl,--no-as-needed -lgrpc++_reflection 
-Wl,--as-needed -ldl -o greeter_client
g++ -std=c++11 `pkg-config --cflags protobuf grpc`  -c -o greeter_server.o 
greeter_server.cc
g++ helloworld.pb.o helloworld.grpc.pb.o greeter_server.o -L/usr/local/lib 
`pkg-config --libs protobuf grpc++ grpc` -Wl,--no-as-needed -lgrpc++_reflection 
-Wl,--as-needed -ldl -o greeter_server
g++ -std=c++11 `pkg-config --cflags protobuf grpc`  -c -o 
greeter_async_client.o greeter_async_client.cc
g++ helloworld.pb.o helloworld.grpc.pb.o greeter_async_client.o 
-L/usr/local/lib `pkg-config --libs protobuf grpc++ grpc` -Wl,--no-as-needed 
-lgrpc++_reflection -Wl,--as-needed -ldl -o greeter_async_client
g++ -std=c++11 `pkg-config --cflags protobuf grpc`  -c -o 
greeter_async_client2.o greeter_async_client2.cc
g++ helloworld.pb.o helloworld.grpc.pb.o greeter_async_client2.o 
-L/usr/local/lib `pkg-config --libs protobuf grpc++ grpc` -Wl,--no-as-needed 
-lgrpc++_reflection -Wl,--as-needed -ldl -o greeter_async_client2
g++ -std=c++11 `pkg-config --cflags protobuf grpc`  -c -o 
greeter_async_server.o greeter_async_server.cc
g++ helloworld.pb.o helloworld.grpc.pb.o greeter_async_server.o 
-L/usr/local/lib `pkg-config --libs protobuf grpc++ grpc` -Wl,--no-as-needed 
-lgrpc++_reflection -Wl,--as-needed -ldl -o greeter_async_server



On Thursday, October 17, 2019 at 11:45:59 AM UTC-4, Thomas Mercier wrote:
>
> Nothing, I think. It looks like gRPC just doesn't build with GCC 8 (which 
> has added more checks/warnings that the gRPC build is treating as errors). 
> Someone else filed a bug about this: 
> https://github.com/grpc/grpc/issues/18689
>
> Removing -Werror as Triose suggested, or adding 
> -Wno-error=class-memaccess should let you build the code.
>
> On Thu, Oct 17, 2019 at 6:16 AM David T. <[email protected] 
> <javascript:>> wrote:
>
>> I'm doing a project for school and we have to install gRPC and protocol 
>> buffer dependencies for c++. I have been following the build 
>> instructions here https://github.com/grpc/grpc/blob/master/BUILDING.md I 
>> am building on Ubuntu 19 and when I run make from the root grpc/ I get 
>> the below error. 
>>
>> src/cpp/common/channel_filter.cc: In member function ‘grpc_linked_mdelem* 
>> grpc::MetadataBatch::AddMetadata(const string&, const string&)’:
>> src/cpp/common/channel_filter.cc:33:48: error: ‘void* memset(void*, int, 
>> size_t)’ clearing an object of non-trivial type ‘grpc_linked_mdelem’ {aka 
>> ‘struct grpc_linked_mdelem’}; use assignment or value-initialization instead 
>> [-Werror=class-memaccess]
>>    memset(storage, 0, sizeof(grpc_linked_mdelem));
>>                                                 ^
>> In file included from ./src/core/lib/transport/transport.h:34,
>>                  from ./src/core/lib/channel/channel_stack.h:48,
>>                  from src/cpp/common/channel_filter.cc:21:
>> ./src/core/lib/transport/metadata_batch.h:33:16: note: ‘grpc_linked_mdelem’ 
>> {aka ‘struct grpc_linked_mdelem’} declared here
>>  typedef struct grpc_linked_mdelem {
>>                 ^~~~~~~~~~~~~~~~~~
>> cc1plus: all warnings being treated as errors
>> make: *** [Makefile:2926: 
>> /home/n0auth/Project3/grpc/objs/opt/src/cpp/common/channel_filter.o] Error 1
>>
>> My protoc version
>> libprotoc 3.0.0 
>>
>> My gcc version
>> gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0 
>>
>> What am I doing wrong? 
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "grpc.io" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/grpc-io/e825be31-8f3e-4bd9-8256-a4e0dfa31480%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/grpc-io/e825be31-8f3e-4bd9-8256-a4e0dfa31480%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/9b173caf-cb72-43dc-a09a-48814846f5cb%40googlegroups.com.

Reply via email to