You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下libprotoc 3.15.8执行make -j时出现port_def.inc缺失错误

解决编译时找不到google/protobuf/port_def.inc的问题

排查解决步骤:

  • 补全Protobuf开发依赖
    你当前只安装了libprotoc编译工具,但Protobuf的头文件、开发库可能缺失。在Ubuntu下执行以下命令补装:

    sudo apt-get update && sudo apt-get install libprotobuf-dev
    

    如果系统源提供的libprotobuf-dev版本和你的3.15.8差异较大,建议手动编译安装对应版本的Protobuf:

    1. 下载Protobuf 3.15.8源码包并解压,进入源码目录
    2. 依次执行:
      ./configure --prefix=/usr/local/protobuf
      make -j$(nproc)
      sudo make install
      sudo ldconfig
      
  • 让CMake正确识别Protobuf路径
    如果是自定义路径安装的Protobuf,执行cmake时需指定路径:

    cmake -DCMAKE_PREFIX_PATH=/usr/local/protobuf ..
    

    同时检查项目的CMakeLists.txt,确保有正确的Protobuf配置:

    find_package(Protobuf REQUIRED)
    include_directories(${Protobuf_INCLUDE_DIRS})
    
  • 清理旧编译文件重新构建
    先清除之前的编译残留:

    make clean
    rm CMakeCache.txt
    

    之后重新执行cmake和make命令。

  • 验证自动生成的pb文件
    确认config_vals.pb.h是用你本地3.15.8版本的protoc生成的,先执行protoc --version确认版本,再重新生成一次pb文件:

    protoc --cpp_out=. /path/to/config_vals.proto
    

内容的提问来源于stack exchange,提问作者Bugsfounder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:18:08