gpt4 book ai didi

c++ - 在 Qt C++ 项目中使用 Go

转载 作者:IT王子 更新时间:2023-10-29 01:44:18 27 4
gpt4 key购买 nike

是否可以在 Qt C++ 项目中使用 Go API?

我想使用以下用 Go 编写的 Google API:https://cloud.google.com/speech-to-text/docs/reference/libraries#client-libraries-install-go

最佳答案

Is it possible to use a Go API in a Qt C++ project?

这是可能的,但在同一个进程中运行 Go 和 Qt 代码可能并不容易,而且会非常脆弱,因为 Go 和 Qt 具有非常不同的线程(goroutine)和内存模型。

但是,Go(在其标准库中)有许多强大的包来简化服务器程序的开发,特别是 HTTP 或 JSONRPC 服务器。

或许您可以考虑使用 inter-process communication 运行两个不同的进程设施。详细信息是特定于操作系统的。我假设你运行 Linux。然后,您的 Qt 应用程序可以使用 QProcess 启动 Go 程序。然后与它通信(作为您的 Go 专用“服务器”类程序的客户端)。

然后你可以使用HTTPJSONRPC从您的 Qt 应用程序远程调用您的 Go 函数。您需要 Qt 中的一些 HTTP 客户端库(它已经在 Qt Network 下,您也可以使用 libcurl )或一些 JSONRPC 客户端库。您的 Go 程序将是一些专用 HTTP 或 JSONRPC 服务器(以及一些 Google Speech to Text 客户端),而您的 Qt 程序将是它的唯一客户端(并将启动它)。所以你的 Go 程序将是一些专门的 proxy .你甚至可以使用 pipe(7) -s, unix(7)套接字,或 fifo(7) -s 增加沟通 channel 的“私密性”。

如果 Google Speech to Text API 很大(但它可能不是),您可以使用 Go 反射或内省(introspection)功能为 Qt 生成一些 C++ 胶水代码:go/ast , go/build , go/parser , go/importer

顺便说一句,Google Speech to Text 协议(protocol)似乎正在使用 JSON 和 HTTP(似乎是一些 Web API )并且记录了 REST API ,所以你可以直接用 C++ 编写相关代码(当然你需要了解协议(protocol)的所有细节:相关的 HTTP 请求和 JSON 格式),而无需任何 Go 代码(或过程)。如果您走那条路,我建议您将 Google Speech to Text 的 Qt(或 C++)代码分开一些 free software库(以便能够从外部获得反馈和帮助)。

关于c++ - 在 Qt C++ 项目中使用 Go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50414206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com