【发布时间】:2019-03-03 03:45:27
【问题描述】:
使用
find_package(Protobuf REQUIRED
PATHS ${PROTOBUF_SEARCH_PATH}
)
if (NOT ${Protobuf_FOUND})
message( FATAL_ERROR "Could not find Protobuf!" )
endif()
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS Foo.proto)
我收到一条错误消息Unknown CMake command "protobuf_generate_cpp"。如果我检查 Protobuff 的安装文件夹,有一个 CMake 文件 <istall path>/cmake/protobuf-module.cmake 包含函数定义。
CMake version: 3.10.2
Protobuf version: 3.6.1
这里有什么问题?
【问题讨论】:
-
在
find_package()调用期间读取的是ProtobufConfig.cmake文件。 CMake 将包含此文件的目录存储在Protobuf_DIR缓存变量中。您可以在构建目录中的CMakeCache.txt文件中找到此变量的值。检查: 1. 找到正确的文件ProtobufConfig.cmake(根据Protobuf_DIR变量)。 2.给定文件包含protobuf_generate_cpp函数的定义。
标签: cmake protocol-buffers protobuf-c