我遵循以下指示:
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)
这些文件可以设置环境变量吗?我该如何使用它们?
答案 0 :(得分:1)
我更喜欢在项目的构建树中将第三方库构建为静态库。
我已经创建了一个cmake库来帮助解决这个问题。 protobuf是我支持的第一批库之一。文档稀疏,因此可以随意提问或只是从文件中的代码中学习cmake/require_protobuf.cmake
库在这里:https://github.com/madmongo1/sanity
如果你想做出贡献,我将不胜感激。
您将看到脚本执行2次构建。一个在构建机器上构建protoc
,第二个构建目标机器的protobuf库。