如何在Windows上使用cmake构建谷歌protobuf环境?

时间:2016-07-16 06:34:12

标签: c++ windows protocol-buffers

我遵循以下指示:

https://github.com/google/protobuf/tree/master/cmake

cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=../../../../install/protobuf ../..

nmake install

在我的程序的CMakeLists.txt中,我使用:

find_package(Protobuf REQUIRED)

但它告诉我:

-- Could NOT find Protobuf (missing:  Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)

我想我应该设置环境变量。

有没有有效的方法呢?

protobuf-master/cmake/install.cmake中的

我可以看到:

configure_file(protobuf-config.cmake.in
  ${CMAKE_INSTALL_CMAKEDIR}/protobuf-config.cmake @ONLY)
configure_file(protobuf-config-version.cmake.in
  ${CMAKE_INSTALL_CMAKEDIR}/protobuf-config-version.cmake @ONLY)
configure_file(protobuf-module.cmake.in
  ${CMAKE_INSTALL_CMAKEDIR}/protobuf-module.cmake @ONLY)
configure_file(protobuf-options.cmake
  ${CMAKE_INSTALL_CMAKEDIR}/protobuf-options.cmake @ONLY)

这些文件可以设置环境变量吗?我该如何使用它们?

1 个答案:

答案 0 :(得分:1)

我更喜欢在项目的构建树中将第三方库构建为静态库。

我已经创建了一个cmake库来帮助解决这个问题。 protobuf是我支持的第一批库之一。文档稀疏,因此可以随意提问或只是从文件中的代码中学习cmake/require_protobuf.cmake

库在这里:https://github.com/madmongo1/sanity

如果你想做出贡献,我将不胜感激。

您将看到脚本执行2次构建。一个在构建机器上构建protoc,第二个构建目标机器的protobuf库。