2017-04-01 33 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...>)