将 gRPC 配置为使用 SSL 包在首次生成时不起作用

Configuring gRPC to use SSL package doesn't work on first build

提问人:TS_ 提问时间:11/16/2023 最后编辑:TS_ 更新时间:11/17/2023 访问量:21

问:

我正在 Linux 上构建 gRPC,并希望将 OpenSSL 用于 SSL 提供程序。我的 CMakeLists.txt 有这些行:

find_package(OpenSSL REQUIRED)
set(gRPC_SSL_PROVIDER package)

在干净的构建中,它有编译错误,因为它试图构建“boringssl”,并且它的一些符号与 OpenSSL 标头冲突。我希望它使用 OpenSSL 包,而不是尝试构建 boringssl。

在第一次生成失败后,CMakeCache.txt 包含以下行:

gRPC_SSL_PROVIDER:STRING=module

如果我再次构建它,它会使用 OpenSSL,不会尝试构建无聊的 ssl,并且构建成功。如果我删除上面的行或整个 CMakeCache.txt 文件,则返回错误。

如何让它在第一次构建时使用 OpenSSL 而不是 boringssl?

如果它有所作为,我正在使用 dockcross 对 arm64 进行交叉编译。

编辑:

@Tsyvarev:我的 CMakeLists.txt设置了一些选项,然后使用 FetchContent 下载 gRPC,所以我在 gRPC 项目中使用主要的 CMakeLists.txt。

linux cmake openssl gRPC 交叉编译

评论

0赞 Tsyvarev 11/16/2023
gRPC 提供了现成的 CMake 项目,因此不清楚将代码放在哪里。或者你有自己的项目,你通过添加gRPC项目?请在问题帖子中澄清这一点。add_subdirectory
0赞 Tsyvarev 11/17/2023
“我的CMakeLists.txt设置了一些选项,然后使用FetchContent下载gRPC” - 不要描述你的代码;而是按原样将代码添加到问题帖子中,以最小可重现示例的形式。(GRPC 的配置很复杂,因此代码中的每个细节都很重要。

答: 暂无答案