【发布时间】:2017-03-06 11:10:47
【问题描述】:
当我收到此编译器错误时,我正在尝试在 QtCreator 中用 C++ 编写一些代码以连接到grpc 服务器:
/some/path/serverproxy.cpp:40: error: undefined reference to `grpc::InsecureChannelCredentials()'
这是我的grpc 包括在serverproxy.cpp 的顶部
#include <grpc++/channel.h>
#include <grpc++/create_channel.h>
#include <grpc++/security/credentials.h>
错误来自这一行:
somenamespace::NewStub(
grpc::CreateChannel("someaddress",
grpc::InsecureChannelCredentials()))};
我尝试在 QtCreator 中添加现有文件并添加这些标头(尽管必须手动为所有外部库的标头执行此操作会很奇怪),但它不起作用。它们位于/usr/local/include/grpc++/**/*.h。
还尝试将INCLUDEPATH += /usr/local/include 添加到我的.pro 文件中。
我还尝试清理项目,运行 qmake 并再次构建。
我必须做什么才能使用这些grpc++ 函数?
【问题讨论】:
-
我认为这个问题没有正确结束。在这种特定情况下,您可以将
pkg-config --libs grpc protobuf和pkg-config --cflags grpc protobuf的输出添加到编译器选项中。同样在我的情况下,另一个库需要grpc++_unsecure,可能是因为我使用了不安全的通道。为简单起见,我建议您使用官方示例的CMakeList.txt和common.cmake。请注意,您需要将PKG_CONFIG_PATH设置为指向已安装grpc 的package文件夹才能使用之前的命令。
标签: c++ qt qt-creator grpc