当我在项目的构建目录中执行cmake时,出现此错误。最初我有一个
找不到protobuf-config.cmake
错误。因此,我将protobuf-config.cmake文件的路径提供给Protobuf_DIR。后来它开始显示此新错误:
CMake错误于 /opt/cmake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137 (消息):找不到Protobuf(缺少: Protobuf_PROTOC_EXECUTABLE)
(找到合适的版本“ 3.6.1”,最低要求为“ 3.0.0”)
我还附加了错误日志文件: https://drive.google.com/open?id=1y7BZ6lDBtxvla7r-o188xM_FjwLqwhCx
我正在Ubuntu-18上使用cmake版本:3.13和protobuf版本:3.6.1
答案 0 :(得分:4)
您可能没有安装Protobuf编译器和开发文件。要解决此问题,请运行以下命令:
sudo apt-get install protobuf-compiler libprotobuf-dev
或者,如果您是手工构建Protobuf,则不能使用RelWithDebInfo
的构建类型来构建Protobuf,因为这会导致库和CMake出现问题。
答案 1 :(得分:0)
在 Ubuntu 20.04 上从 apt 安装,无权 /usr/include/google
修复:sudo chmod +Xr -R /usr/include/google
答案 2 :(得分:0)
在这里快速补充一下,在 this answer 之后安装 Protobuf 后,我必须删除我工作区中的 build
文件夹才能让 cmake
运行而不会出现此错误:)
答案 3 :(得分:-1)
默认存储库通常包含过时的protobuf版本。最好从以下来源手动安装它:
git clone --progress -b v3.10.0 https://github.com/protocolbuffers/protobuf && \
( \
cd protobuf; \
mkdir build; \
cd build; \
cmake ../cmake \
-DCMAKE_BUILD_TYPE=Release \
-Dprotobuf_BUILD_SHARED_LIBS=ON \
-Dprotobuf_BUILD_TESTS=OFF; \
make -j4 install; \
) && \
rm -rf protobuf
答案 4 :(得分:-2)
嗨,
使用sudo apt list | grep protobuf
列出您的protobuf库,它应该告诉您默认情况下将安装什么。运行protoc --version
,以查看现在默认识别的内容。然后,如果需要,可以从github获取一个版本,将其编译并安装(这不会花很长时间)。然后再次运行protoc --version
。