找到Octave和warning" ARPACK库,但似乎没有正常工作;禁用eigs功能"

时间:2017-03-02 20:51:02

标签: octave configure m4 arpack

场合

我使用Ubuntu 14.04。我正在使用GNU 6.3.0从源代码构建GNU Octave 4.2.1。这个版本的Octave是相当新的,但我发现在尝试编译旧的Octave版本时也会出现问题(低至3.8.1)。

我使用

配置Octave的构建
${sourcedir}/configure --prefix=/opt/octave/4.2.1 \
--with-java-homedir=/usr/lib/jvm/default-java \
--with-java-libdir=/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server

问题

编译成功但出现了不需要的警告

configure: WARNING: ARPACK library found, but does not seem to work properly; disabling eigs function

我更愿意使用eigs()函数。

信息

我自己使用相同的编译器构建了ARPACK-ng。测试套件中的所有测试(make check)都将通过。环境变量LD_LIBRARY_PATHPKG_CONFIG_PATH按预期指向ARPACK库目录。 Octave的配置文件正确识别该位置,如前所述。

此外,如果我在另一台本机安装ARPACK的计算机上编译Octave(libarpack2libarpack2-dev版本3.1.5-2),我会得到相同的消息。如果我还使用包存储库安装相关的额外库libarpack++2c2alibarpack++2-dev,那么它不会改变。因此问题似乎与ARPACK文件的来源无关。

抛出此错误的Octave的configure.ac文件部分是

### Check for ARPACK library.

save_LIBS="$LIBS"
LIBS="$LAPACK_LIBS $BLAS_LIBS $FLIBS $LIBS"
OCTAVE_CHECK_LIB([arpack], ARPACK,
[ARPACK not found.  The eigs function will be disabled.],
[],
[dseupd],
[Fortran 77], [don't use the ARPACK library, disable eigs function],
[warn_arpack=
OCTAVE_CHECK_LIB_ARPACK_OK(
[AC_DEFINE(HAVE_ARPACK, 1, [Define to 1 if ARPACK is available.])],
[warn_arpack="ARPACK library found, but does not seem to work properly; disabling eigs function"])])
LIBS="$save_LIBS"

我追溯问题的最远处是发出警告的子例程OCTAVE_CHECK_LIB_ARPACK_OK存在于文件${octave_source}/m4/acinclude.m4中。它是用m4 language写的,我不知道

问题

是否有可能理解为什么ARPACK'似乎无法正常工作'?

这有什么解决方法吗?

这是误报还是错误?

0 个答案:

没有答案