gpt4 book ai didi

c++ - message.pb.h 文件中的 Protobuf : Cannot open include file common. h

转载 作者:行者123 更新时间:2023-11-30 03:30:05 28 4
gpt4 key购买 nike

我正在尝试编译这个项目:https://github.com/shaochuan/cmake-protobuf-example .我用 msvc2015 (x64) 成功编译了 protobuf。检查项目运行没有错误(所有结果:通过)。

我在 cmake 中设置了项目,提供了所有路径:

Protobuf_INCLUDE_DIR=C:/TK/protobuf-330/msvc2015_64/install/include Protobuf_LIBRARY_DEBUG=C:/TK/protobuf-330/msvc2015_64/install/lib/libprotobufd.lib Protobuf_LITE_LIBRARY_DEBUG=C:/TK/protobuf-330/msvc2015_64/install/lib/libprotobuf-lited.lib

Protobuf_PROTOC_EXECUTABLE=C:/TK/protobuf-330/msvc2015_64/install/bin/protoc.exeProtobuf_PROTOC_LIBRARY_DEBUG=C:/TK/protobuf-330/msvc2015_64/install/lib/libprotocd.libProtobuf_SRC_ROOT_FOLDER=C:\TK\src\protobuf-330\src

原型(prototype)项目编译没有任何错误。它包括 message.ccmessage.h 文件。 CMakeLists.txt 看起来像这样:

INCLUDE(FindProtobuf)
FIND_PACKAGE(Protobuf REQUIRED)
INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
PROTOBUF_GENERATE_CPP(PROTO_SRC PROTO_HEADER message.proto)
ADD_LIBRARY(proto ${PROTO_HEADER} ${PROTO_SRC})

如果我使用以下 CMakeLists.txt 编译主项目:

PROJECT(rpc)
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
ADD_SUBDIRECTORY(proto)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
ADD_EXECUTABLE(main main.cpp)
TARGET_LINK_LIBRARIES(main proto ${PROTOBUF_LIBRARY})

然后构建它,我收到此错误 (C1083) 说:

"Cannot open include file: 'google/protobuf/stubs/common.h': No such file or directory" c:\tktest\protobuftest\src\proto\message.pb.h

文件中的错误行是:

#include <google/protobuf/stubs/common.h>

我不知道哪里出了问题。欢迎提供任何提示。关于 cmake + protobuf + visual studio 2015 是否存在一些已知问题?提前致谢。

最佳答案

在您的 CMakeLists.txt 中,您应该将 PROTOBUF_INCLUDE_DIR 替换为 Protobuf_INCLUDE_DIRProtobuf_INCLUDE_DIRS(注意 S 在end) 和 PROTOBUF_LIBRARYProtobuf_LIBRARYProtobuf_LIBRARIES。 CMake 变量名称区分大小写。我刚刚检查了 CMake 3.9 版本。使用 find_package(Protobuf) 时隐式调用的 FindProtobuf.cmake 模块在运行成功时定义了这些变量。

关于c++ - message.pb.h 文件中的 Protobuf : Cannot open include file common. h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214402/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com