编译R-4.2.2时readline依赖检测失败求助(已配置本地库)
编译R-4.2.2时readline依赖检测失败问题排查
我在HPC环境下使用GCC 12.2.0编译R-4.2.2时出现如下错误:
checking for readline/history.h... yes
checking for readline/readline.h... yes
checking for rl_callback_read_char in -lreadline... no
checking for main in -lncurses... no
checking for main in -ltinfo... no
checking for main in -ltermcap... no
checking for main in -ltermlib... no
checking for rl_callback_read_char in -lreadline... no
configure: error: --with-readline=yes (default) and headers/libs are not available
已完成的操作:
- 本地目录安装readline 8.2,路径信息:
- 库路径:
/scratch/users/duca/local/readline/8.2/lib/ - 头文件路径:
/scratch/users/duca/local/readline/8.2/include/
- 库路径:
- 确认readline库文件均包含
rl_callback_read_char符号:$ nm /scratch/users/duca/local/readline/8.2/lib/libreadline.so | grep rl_callback_read_char 0000000000036e40 T rl_callback_read_char 0000000000036e40 t rl_callback_read_char.localalias $ nm /scratch/users/duca/local/readline/8.2/lib/libreadline.so.8 | grep rl_callback_read_char 0000000000036e40 T rl_callback_read_char 0000000000036e40 t rl_callback_read_char.localalias $ nm /scratch/users/duca/local/readline/8.2/lib/libreadline.so.8.2 | grep rl_callback_read_char 0000000000036e40 T rl_callback_read_char 0000000000036e40 t rl_callback_read_char.localalias - 导出环境变量:
export LD_RUN_PATH=$LD_RUN_PATH:/scratch/users/duca/local/readline/8.2/lib - configure命令中指定LDFLAGS和CPPFLAGS:
./configure LDFLAGS="-L/scratch/users/duca/local/readline/8.2/lib/" CPPFLAGS="-I/scratch/users/duca/local/readline/8.2/include/" --prefix=/scratch/users/duca/local/R/4.2.2
已知使用--with-readline=no可以规避问题,但不想采取该妥协方案,希望排查问题根源。
内容的提问来源于stack exchange,提问作者euduca
相关产品推荐
相关产品推荐

