gpt4 book ai didi

c - 如何检查 openssl 或 cryptopp 是否安装并使用系统中实际存在的库(已安装)?

转载 作者:行者123 更新时间:2023-12-01 02:16:30 27 4
gpt4 key购买 nike

我编写了加密/解密缓冲区的函数(相同函数的两个版本 - 第一个,使用cryptopp,第二个 - 使用openssl)。

我想做这样的事情:

#if defined OPENSSL
run_aes_openssl(...);
#elif defined CRYPTOPP
run_aes_crytopp(...);
#else
error(...);
#end

是否可以?

最佳答案

事情没那么简单。为了找到定义的宏,您必须包含定义该宏的 header 。并且 C 没有类似“如果它存在就包含 foo.h”之类的东西;它必须存在,否则会出现编译错误。

通常,这将通过您在编译之前运行的脚本来解决。您的脚本会检查类似 /usr/include 的位置, /usr/local/include等,查看是否存在 OpenSSL header ;然后它输出一个包含在 CFLAGS -DHAVE_OPENSSL 中的 Makefile .然后您的代码可以检查该宏。

这有点胡扯,为了简单起见,您可以要求用户手动编辑文件,例如使用名为 user_config.h 的东西分发您的项目用户应该在编译之前编辑,指定他们放置 OpenSSL 的位置等等。

有一个名为 GNU Autoconf 的预设系统,它包含一个脚本,可以检查您的系统是否存在阳光下的所有内容。这有其优点和缺点;它让 plebs 下载你的源代码变得更容易,但它很臃肿,对你自己来说可能很困难。

关于c - 如何检查 openssl 或 cryptopp 是否安装并使用系统中实际存在的库(已安装)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24310353/

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