如何在Yocto Pyro上移植gRPC C++ HelloWorld及解决依赖报错
解决gRPC C++ HelloWorld移植中protoc插件的库依赖问题
看起来你在Yocto Pyro环境下给ARM平台移植gRPC时,遇到了grpc_cpp_plugin找不到libprotoc.so.15的问题,这是因为Yocto构建的工具链组件依赖库不在系统默认的动态库搜索路径里,下面是几个可行的解决办法:
临时设置动态库搜索路径
首先找到libprotoc.so.15的具体位置,执行以下命令:find /home/admin/BUILD/tmp/sysroots-components/x86_64/grpc-native -name libprotoc.so.15假设搜索结果是
/home/admin/BUILD/tmp/sysroots-components/x86_64/grpc-native/usr/lib/libprotoc.so.15,就把这个路径添加到LD_LIBRARY_PATH环境变量中,再执行protoc命令:export LD_LIBRARY_PATH=/home/admin/BUILD/tmp/sysroots-components/x86_64/grpc-native/usr/lib:$LD_LIBRARY_PATH protoc -I ./ --grpc_out=. --plugin=protoc-gen-grpc=/home/admin/BUILD/tmp/sysroots-components/x86_64/grpc-native/usr/bin/grpc_cpp_plugin hello.proto使用Yocto的构建环境脚本
更规范的做法是先加载Yocto的构建环境,这样会自动配置好所有工具链的依赖路径。回到你的Yocto构建目录,执行:source oe-init-build-env之后再运行你的protoc命令,这时候环境会自动识别到grpc-native组件里的依赖库,不需要手动设置路径。
重新构建grpc-native组件
如果上面的方法都不行,可能是grpc-native组件的构建不完整,导致libprotoc.so.15没有被正确安装到sysroot中。可以尝试清理并重新构建该组件:bitbake grpc-native -c cleanall && bitbake grpc-native构建完成后再尝试执行protoc命令。
内容的提问来源于stack exchange,提问作者Jay ganatra
相关产品推荐
相关产品推荐

