gpt4 book ai didi

c - OpenSSL编译错误: 'ENGINE' redeclared as different kind of symbol

转载 作者:行者123 更新时间:2023-11-30 17:06:57 25 4
gpt4 key购买 nike

我必须在 Linux 系统上编译一些遗留的 C 代码和 OpenSSL。我已经在 OpenSSL 上运行了 make,它看起来相当不错。

然后我开始将 OpenSSL 的 CMAC.h 包含在我的遗留代码中。

#include "ssl\include\openssl\cmac.h"

(这是目前我的代码中有关 OpenSSL 的唯一一行)。

在编译(具有上述包含语句的遗留代码)期间,现在我收到以下错误:“OpenSSL 编译错误:‘ENGINE’被重新声明为不同类型的符号”

是的,确实如此,遗留代码有“ENGINE”的定义,但我不允许更改它。所以现在的问题是:如何保留这两个定义?我考虑过命名空间之类的东西,但我对 C 没有那么丰富的经验?请提出建议,非常感谢任何帮助。

最佳答案

一种选择是分离代码,在单独的源文件中使用 ENGINE 的不同定义,并且仅包含两者之一的定义。这应该可以避免冲突。

不幸的是,C 不知道像命名空间这样的结构。

关于c - OpenSSL编译错误: 'ENGINE' redeclared as different kind of symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34328626/

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