找回密码
 立即注册
查看: 349|回复: 0

google/protobuf/port_def.inc: no such file or directory

[复制链接]
发表于 2022-1-21 21:28 | 显示全部楼层 |阅读模式
1. 问题


xxx.pb.h: fatal error: google/protobuf/port_def.inc: no such file or directory
2. 原因


protoc 与 头文件版本不匹配,port_def.inc是protobuf3.7.0版本之后才有的
3. 解决方法


更新protoc版本
如果不是重新生成.pb文件,注意protoc版本要统一
1. 查看生成.pb文件的protoc版本(编译环境)    protoc --version    2. 比如原始编译版本是3.12.3,在官网下载对应版本https://pypi.org/project/protobuf/3. 按照如下命令安装    cd protobuf-xxx    ./autogen.sh    ./configure    make            // 耗时较长    make check      // 非必须    sudo make install    sudo ldconfig4. 其他问题


如果更新的protoc版本和头文件编译版本不匹配,可能编译会报如下错误
xxx.pb.h: #error this file was generated by an older version of protoc …#error incompatible with your Protocol Buffer headers.#error please regenerate this file with a newer version of protoc
    解决办法

卸载protoc重新安装指定版本,指定版本下载安装上面介绍过了
protobuf的卸载sudo apt-get remove libprotobuf-devwhich protoc    // 查看可执行文件路径sudo rm /usr/local/bin/protoc           // 删执行文件                                        //(也可能是/usr/bin/protoc)sudo rm -rf /usr/local/include/google   //头文件sudo rm -rf /usr/local/lib/libproto*    //库文件
sudo ldconfig,动态链接库为系统所共享,即应用程序能正确找到相关链接库文件。不执行这步可能报错:
protoc: error while loading shared libraries: libprotoc.so.23: cannot open shared object file: no such file or directory参考文章


https://blog.csdn.net/baidu_35692628/article/details/121526178
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-28 13:07 , Processed in 0.973837 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表