2017-04-01 36 views
1

我正尝试创建CMake生成来编译我的项目与谷歌API库,谷歌APIs的来源与协议缓冲区生成。将google APIs库添加到cmake生成

比方说,我想使CMake的文件https://github.com/GoogleCloudPlatform/cpp-docs-samples/blob/master/speech/api/streaming_transcribe.cc

streaming_transcribe.cc使用 #include "google/cloud/speech/v1beta1/cloud_speech.grpc.pb.h"它位于谷歌的API的源目录中,需要从源头上进行编译和对GRPC库相连, grpC++和一堆其他来源在同一个目录中。

样品https://github.com/GoogleCloudPlatform/cpp-docs-samples/blob/master/speech/api/

正在编制在谷歌的API目录中的源对象文件不链接他们GRPC,然后归档到AR文件,就在此时,streaming_transcribe.cc编译和链接在makefile与ar文件和grpc。

我怎样才能使cmake文件构建相同的过程?

+0

我想归档的目标文件只是一个*静态库*。在CMake中,您可以使用[add_library(STATIC)](https://cmake.org/cmake/help/v3.7/command/add_library.html)命令创建它。 – Tsyvarev

+0

然后我无法在另一个平台上编译源码 – LichKing

+0

您在另一个平台上遇到了哪个错误?你使用哪个'CMakeLists.txt'文件? – Tsyvarev

回答

1

存档的目标文件是一个静态库。使用CMake,你可以创建它:

add_library(<library-name> STATIC <sources...>)