我正在尝试将
flint
v3.1.2 安装到我在 MPCDF HPC 集群上的帐户中。
我成功地在我的主目录中安装了 GMP 6.3.0、MPFR 4.2.1,并为这两个软件包安装了 ./configure --prefix=$HOME/software/<packagename>
。
从
flint
目录中,我按照 在线文档 并设法使用以下方法到达 ./configure
步骤:
>>> cd flint/
>>> ./bootstrap.sh
>>> ./configure --prefix=$HOME/software/flint/ --with-gmp-include=$HOME/software/gmp-6.3.0/include/ --with-gmp-lib=$HOME/software/gmp-6.3.0/lib/ --with-mpfr-include=$HOME/software/mpfr-4.2.1/include/ --with-mpfr-lib=$HOME/software/mpfr-4.2.1/lib/
但是,当我转到
make
步骤时,我得到以下输出:
/usr/bin/mkdir -p build/generic_files
CC generic_files/inlines.c
CC generic_files/profiler.c
CC generic_files/sprintf.c
CC generic_files/fscanf.c
CC generic_files/memory_manager.c
In file included from ./src/thread_pool.h:15:0,
from src/generic_files/memory_manager.c:18:
./src/flint.h:154:28: error: unknown type name ‘_Thread_local’
# define FLINT_TLS_PREFIX _Thread_local
^
src/generic_files/memory_manager.c:340:1: note: in expansion of macro ‘FLINT_TLS_PREFIX’
FLINT_TLS_PREFIX size_t flint_num_cleanup_functions = 0;
^
src/generic_files/memory_manager.c:340:25: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘flint_num_cleanup_functions’
FLINT_TLS_PREFIX size_t flint_num_cleanup_functions = 0;
^
In file included from ./src/thread_pool.h:15:0,
from src/generic_files/memory_manager.c:18:
./src/flint.h:154:28: error: unknown type name ‘_Thread_local’
# define FLINT_TLS_PREFIX _Thread_local
^
src/generic_files/memory_manager.c:342:1: note: in expansion of macro ‘FLINT_TLS_PREFIX’
FLINT_TLS_PREFIX flint_cleanup_function_t * flint_cleanup_functions = NULL;
^
src/generic_files/memory_manager.c:342:43: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
FLINT_TLS_PREFIX flint_cleanup_function_t * flint_cleanup_functions = NULL;
^
src/generic_files/memory_manager.c: In function ‘flint_register_cleanup_function’:
src/generic_files/memory_manager.c:358:5: error: ‘flint_cleanup_functions’ undeclared (first use in this function)
flint_cleanup_functions = flint_realloc(flint_cleanup_functions,
^
src/generic_files/memory_manager.c:358:5: note: each undeclared identifier is reported only once for each function it appears in
src/generic_files/memory_manager.c:359:10: error: ‘flint_num_cleanup_functions’ undeclared (first use in this function)
(flint_num_cleanup_functions + 1) * sizeof(flint_cleanup_function_t));
^
src/generic_files/memory_manager.c: In function ‘_flint_cleanup’:
src/generic_files/memory_manager.c:380:21: error: ‘flint_num_cleanup_functions’ undeclared (first use in this function)
for (i = 0; i < flint_num_cleanup_functions; i++)
^
src/generic_files/memory_manager.c:381:9: error: ‘flint_cleanup_functions’ undeclared (first use in this function)
flint_cleanup_functions[i]();
^
src/generic_files/memory_manager.c: At top level:
cc1: warning: unrecognized command line option "-Wno-stringop-overread" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-stringop-overflow" [enabled by default]
Makefile:615: recipe for target 'build/generic_files/memory_manager.lo' failed
make: *** [build/generic_files/memory_manager.lo] Error 1
有人可以帮我找出问题出在哪里吗?
目前解决方案似乎是使用旧版本 v3.0.1。 执行上述相同步骤即可成功安装。 我确实做了一件稍微不同的事情 - 那就是加载 OpenMP 模块,但我不确定这是否有任何区别。现在我很高兴能够在安装 v3.0.1 后使用
python-flint