使用传统命令构建和安装openssl时,定义“struct ecdsa_method”和“struct ecdh_method”的主题中的两个标题不会复制到目标目录:
config
make install
但是,使用这些结构的类型(例如ECDSA_METHOD和ECDH_METHOD)在ecdsa.h中定义,并将其复制到目标目录。当您尝试编译使用上述任何类型的代码时,它会导致令人困惑的“不完整变量定义”错误。如果尝试构建一个实现了ECDSA和ECDH方法的openssl引擎,你将不可避免地遇到这个错误。
我检查了由config生成的Makefile,发现在安装过程中有一个名为EXHEADERS的变量,但我没有找到通过'config'选项填充它的常规方法。
解决方法是手动将缺少的标头从源树复制到目标driectory,但我不喜欢这个“解决方案”。