在google-api-cpp-client中构建专门的服务api
Building specialized service APIs in google-api-cpp-client
我正在尝试构建专门的Youtube API,它包含在google-api-cpp-client库的标准发行版中。文档说明:
如果您下载c++库并将其解压缩到此SDK的源安装根目录下的
service_apis
目录中,则默认构建脚本将自动构建它们。
然而,构建脚本没有。构建分布中包含的示例非常清楚地揭示了这一点。
Linking CXX executable ../../bin/calendar_sample
ld: library not found for -lgoogle_calendar_api
根CMakeLists.txt
的尾部如下所示:
add_subdirectory(src)
if (googleapis_build_samples)
set(googleapis_build_service_apis true) # force on
endif()
if (googleapis_build_service_apis)
add_subdirectory(service_apis)
endif()
# Build samples after the service apis
# but keep them under src
if (googleapis_build_samples)
add_subdirectory(src/samples)
endif()
这最终导致这个CMakeLists.txt(在service_api目录的根目录中):
file(GLOB all_valid_subdirs RELATIVE
${CMAKE_CURRENT_SOURCE_DIR} "*/CMakeLists.txt")
foreach(dir ${all_valid_subdirs})
message(STATUS "path = ${dir}")
if(${dir} MATCHES "^([^/]*)//CMakeLists.txt")
string(REGEX REPLACE
"^([^/]*)//CMakeLists.txt" "\1" dir_trimmed ${dir})
add_subdirectory(${dir_trimmed})
endif()
endforeach(dir)
我在if语句中放了一个message
输出。似乎add_subdirectory
呼叫从未到达。foreach
遍历所有子目录。
为什么正则表达式比较失败?
我实际上在完成这个问题时发现了错误。正则表达式比较包含一个额外的正斜杠。下面的正则表达式将成功地包含这些库。
^([^/]*)/CMakeLists.txt
我会向开发人员提出一个错误。
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++MySQL C api用户输入行
- 如何使用 AWS Transcribe C++ API 中的'StartTranscriptionJobRequest'?
- 将std::string传递给WriteConsole API
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- 在gtest.中使用fff.h模拟系统API
- 有没有任务栏API可以立即应用注册表更改
- C++win32 API创建多个类似视口的窗口
- 使用libcurl提交批量url的正确BING Api POST url是什么
- 如何将真正的字符串从python c-api转换为python脚本
- 检测win32服务创建和删除的最佳方法
- 使用 mod_gsoap 部署服务时,如何在 Gsoap 中更改 soap 上下文的模式?
- 使用 Windows 防火墙 API 限制服务,找不到服务短名称
- QT REST客户端为Microsoft认知服务翻译器API获得身份验证令牌
- 使用什么样的API,您可以在OSX中执行read-consistent文件操作,类似于Windows卷影服务
- 将windows服务附加到skype Public Api
- 在google-api-cpp-client中构建专门的服务api
- 如何使用Windows API轻松控制Windows服务