我尝试使用某些功能构建库wolfssl
,它可以在–enable-sha
期间通过./configure
标志启用。像./configure –enable-sha
在Linux下一切正常,但现在我需要在Windows下使用visual studio解决方案构建它。 *.sln
文件在repo中呈现,但我完全混淆了这个configure参数。我不确定Visual Studio是否运行configure
脚本。即使我错了,我也找不到解决方案属性中的任何选项来将–enable-sha
传递给configure
。
真是个好问题!你是正确的./configure在Visual Studio中不起作用。对于每个配置选项,都有相应的CFLAG或一组CFLAG,可用于启用相同的功能。要在Visual Studio中设置CLFAGS,wolfSSL已经使用设置WOLFSSL_USER_SETTINGS
配置了windows项目。这使用户可以轻松地将新设置添加到wolfssl-root/IDE/WIN/user_settings.h
中的头文件中,并在构建库时自动将其置入!
你提到了--enable-sha所以如果我们查看wolfssl-root/configure.ac
中的configure.ac文件并搜索该设置,我们将看到如下:
# SHA
AC_ARG_ENABLE([sha],
[AS_HELP_STRING([--enable-sha],[Enable SHA (default: enabled)])],
[ ENABLED_SHA=$enableval ],
[ ENABLED_SHA=yes ]
)
if test "$ENABLED_SHA" = "no"
then
AM_CFLAGS="$AM_CFLAGS -DNO_SHA -DNO_OLD_TLS"
else
# turn off SHA if leanpsk or leantls on
if test "$ENABLED_LEANPSK" = "yes" || test "$ENABLED_LEANTLS" = "yes"
then
AM_CFLAGS="$AM_CFLAGS -DNO_SHA -DNO_OLD_TLS"
ENABLED_SHA=no
fi
fi
我们可以从上面的逻辑中收集到的是默认情况下启用SHA,如果您要禁用它,则只需要设置一个宏!
因此,要在Windows中启用SHA功能,您将删除NO_SHA
的任何预处理器设置或显然禁用它,然后添加设置NO_SHA
。另请注意,旧TLS依赖于sha,因此在禁用它时,您还需要根据configure.ac中的规则设置NO_OLD_TLS
!
wolfSSL具有默认关闭的其他功能。在这些情况下,您必须定义类似WOLFSSL_FEATURE
或HAVE_FEATURE
才能启用它。您可以再次使用configure.ac作为参考,或者您可以在我们的网站上“特色”部分的“文档”选项卡下查看wolfSSL手册!你可能会发现Chapter 2 Section 2.3 "Building on Windows“很有帮助,因为它详细说明了我上面提供的信息。
我还建议在第2章中查看这些部分:
第2章第2.4.1节删除功能
第2章第2.4.2节启用默认禁用的功能
注意:对于将来有关wolfSSL的任何问题,如果您在问题中添加标签“wolfssl”,我们将收到一封电子邮件,告知我们您已发布有关堆栈溢出的问题!我们的一位工作人员非常乐意回答您的问题。如果您在等待回复时遇到长时间延迟,请随时通过[email protected]向我们发送电子邮件,其中包含指向您的堆栈溢出问题的链接,我们将很乐意对其进行调查!