AC_CHECK_LIB 具有多个依赖项

问题描述 投票:0回答:1

我想在项目中使用 oqs 库,我必须验证该库是否可访问。 该项目使用autoconf,我必须使用AC_CHECK_LIB

我的第一次尝试是:

AC_CHECK_LIB(oqs, OQS_randombytes, [LIBOQS_LIBS="-loqs"; ac_enable_pqc=yes], [ac_enable_pqc=no])
,但这失败了。

我吓坏了,所以我尝试“模拟”AC_CHECK_LIB 的作用。创建了一个简单的 C 程序,其中包含 oqs 库并调用

OQS_randombytes
函数。编译了一下,发现有很多错误。我发现 oqs 库有一些依赖项,我需要这样编译它:

gcc test.c -loqs -lssl -lcrypto
.

所以有2个依赖关系。这样我创建了以下“东西”,我不知道它是否正确:

AC_CHECK_LIB([oqs -lssl -lcrypto], [OQS_randombytes], [LIBOQS_LIBS="-loqs -lssl -lcrypto"; ac_enable_pqc=yes], [ac_enable_pqc=no])

看起来确实不太好,但是它可以工作。那么,有没有更好的方法呢?

autoconf
1个回答
0
投票

看起来

AC_CHECK_LIB
的最后一个参数是针对依赖关系的:

AC_CHECK_LIB(库、函数、[如果找到则执行操作]、[如果未找到则执行操作]、[其他库])

就我而言:

AC_CHECK_LIB(oqs, OQS_randombytes, [LIBOQS_LIBS="-loqs"; ac_enable_pqc=yes], [ac_enable_pqc=no], [-lssl -lcrypto])

© www.soinside.com 2019 - 2024. All rights reserved.