如何使用OpenSSL构建安装ecs_locl.h和ech_locl.h头枕?

如何使用OpenSSL构建安装ecs_locl.h和ech_locl.h头枕?,openssl,openssl-engine,Openssl,Openssl Engine,当您使用传统命令构建和安装openssl时,主题中定义“struct ecdsa_method”和“struct ecdh_method”的两个标题不会复制到目标目录: config make install 但是,使用这些结构的类型(例如ECDSA_方法和ECDH_方法)是在ECDSA.h中定义的,它被复制到目标目录。当您试图编译使用上述任何类型的代码时,它会导致令人困惑的“不完整变量定义”错误。如果试图构建一个实现了ECDSA和ECDH方法的openssl引擎,您将不可避免地遇到这个错误

当您使用传统命令构建和安装openssl时,主题中定义“struct ecdsa_method”和“struct ecdh_method”的两个标题不会复制到目标目录:

config
make install
但是,使用这些结构的类型(例如ECDSA_方法和ECDH_方法)是在ECDSA.h中定义的,它被复制到目标目录。当您试图编译使用上述任何类型的代码时,它会导致令人困惑的“不完整变量定义”错误。如果试图构建一个实现了ECDSA和ECDH方法的openssl引擎,您将不可避免地遇到这个错误

我检查了由config生成的Makefile,发现在安装过程中使用了一个名为EXHEADERS的变量,但我没有找到通过“config”选项填充它的常规方法


解决方法是手动将缺少的标题从源树复制到目标驱动器,但我不喜欢这种“解决方案”

没有真正的“解决方案”,这是OpenSSL目前的一个缺点。您可以将头文件复制到本地源目录,然后从那里使用它们。如果它们使用不同的OpenSSL版本进行更改,则必须保持同步。不是很优雅。是的,这正是我做的,但我不喜欢。也许我应该问问openssl社区。谢谢,我已经做了,明白吗。但没有真正的答案。另一个问题可以找到,关于相同的问题。感谢链接。看来我们只能靠自己了。当我读到你的qs的唯一答案时,我笑了:“不幸的是,有人认为OpenSSL应该尽可能地变得无用,奇怪的是,这一切都是在heartbleed后门关闭后不久开始的。”。的确如此,但由于对其他开源工具的渗透是巨大的,你不能忽视openssl。。。然而……然而?你什么意思,你有什么大计划吗?;-)没有真正的“解决方案”,这是OpenSSL目前的一个缺点。您可以将头文件复制到本地源目录,然后从那里使用它们。如果它们使用不同的OpenSSL版本进行更改,则必须保持同步。不是很优雅。是的,这正是我做的,但我不喜欢。也许我应该问问openssl社区。谢谢,我已经做了,明白吗。但没有真正的答案。另一个问题可以找到,关于相同的问题。感谢链接。看来我们只能靠自己了。当我读到你的qs的唯一答案时,我笑了:“不幸的是,有人认为OpenSSL应该尽可能地变得无用,奇怪的是,这一切都是在heartbleed后门关闭后不久开始的。”。的确如此,但由于对其他开源工具的渗透是巨大的,你不能忽视openssl。。。然而……然而?你什么意思,你有什么大计划吗?;-)