Задать вопрос
@Urukhayy

Как правильно установить gRPC c++?

Устанавливал по инструкции с официального сайта. Вот перечень команд с учётом нахождения в каталогах:

git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc
cd grpc
git submodule update --init

make

cd third_party/protobuf
make && sudo make install


Затем по инструкции нужно пройти в папку:

cd examples/cpp/helloworld/

И скомпилировать пример приложения на grpc, а затем запустить его. В момент компиляции примера приложения на grpc появилась ошибка:

Package grpc was not found in the pkg-config search path.
Perhaps you should add the directory containing `grpc.pc' to the PKG_CONFIG_PATH environment variable


В инструкции не было ничего про добавление этого каталога в PKG_CONFIG_PATH, может быть он должен был автоматически добавиться? Я нашёл этот каталог в корне репозитория, в папке libs/opt, и вручную прописал (этого не было в официальной инструкции):

export PKG_CONFIG_PATH=<REPOSITORY ROOT>/libs/opt/pkgconfig/


После этого ошибка выше ушла, но осталась другая:

In file included from helloworld.grpc.pb.cc:6:0:
helloworld.grpc.pb.h:24:55: fatal error: grpcpp/impl/codegen/async_generic_service.h: Нет такого файла или каталога


Сам каталог grpccpp так же хранится в корне репозитория, в папке includes. В инструкции тоже ничего нет про его подключение. Его тоже добавлять вручную или изначально make grpc должен был сам добавить все пути?
  • Вопрос задан
  • 2528 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@4rtzel
Попробуйте:
git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc
cd grpc
git submodule update --init

make
sudo make install # <<< установка grpc

cd third_party/protobuf
make && sudo make install

И не забудьте, что pkg-config должен быть установлен до вызова этих команд, а также другие зависимости.

Можно проверить что всё установилось правильно следующим образом:
pkg-config --libs grpc
    -L/usr/local/lib -lgrpc

pkg-config --libs protobuf
    -L/usr/local/lib -lprotobuf -pthread -lpthread
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы