【发布时间】:2020-08-09 20:10:06
【问题描述】:
基本上,我想要这样的结构:
MainRepo
+---app1
+---app2
+---common
+---some_lib1
+---some_lib2
+---protobuf
+---comms.proto
+---cs
+---Comms.pb.cs
+---cpp
+---comms.pb.cc
+---comms.pb.h
我希望能够查看 repo 并拥有一个脚本,该脚本为 repo 中的应用程序运行所有不同语言的 protoc。这是一个包含两个不同 arm 机器和一个 x64 的应用程序的单声道存储库。我基本上是在运行 protoc,它会为 c、js、cs、cpp 等生成所有源文件,并将它们放在 protobuf 下的它们自己的文件夹中。
例如,我想要 app1,去查找 c++ 标头和源代码并使用它们来构建应用程序。目前,我一直在破解的示例使用 cmake 生成 .cc 和 .h 这对我来说很不方便,因为 intellisense 抱怨说,因为这些文件在我写作时不存在。
无论如何,我整天都在破解 cmake。我总是以 cmake 的前向声明错误而告终,并且无法编译我的 .cc 和 .h
PROJECT(test)
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
SET(CMAKE_CXX_FLAGS "-g -Wall -Werror -std=c++11")
ADD_EXECUTABLE(main main.cpp)
TARGET_LINK_LIBRARIES(main proto ${PROTOBUF_LIBRARY})
find_package(Protobuf REQUIRED)
set(PROTOBUF_IMPORT_DIRS "../proto")
set (msgs ${PROTOBUF_IMPORT_DIRS}/communications.proto)
PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${msgs})
add_library(proto SHARED ${PROTO_SRCS})
target_link_libraries(proto ${PROTOBUF_LIBRARY})
想知道是否有任何建议。我不想将我的 protobuf 东西放在我的公共文件夹之外,我也不需要 protoc 来生成这些文件,因为我用另一种方式(尽管我可以改变这种方式)。我只是想确保语言特定的文件仍然可以查看,而不仅仅是在 cmake 期间生成的,我无法查看它们。
【问题讨论】:
标签: cmake protocol-buffers external