Ubuntu20.04编译Octave源码时C链接Fortran库失败及解决
解决Ubuntu 20.04编译Octave源码时C链接Fortran库失败的问题
问题现象
在Ubuntu 20.04系统中,按照Octave官方编译指南及Debian系依赖说明编译Octave源码时,触发C链接Fortran库失败的错误。查看config.log可发现核心报错为__libc_csu_fini和__libc_csu_init未定义引用。
根因分析
问题由两个因素共同导致:
- Linuxbrew的环境路径干扰了系统默认编译链接路径,使得编译器调用了非系统标准的库文件
- 已安装的
f2c工具与Octave编译所需的Fortran链接逻辑冲突
解决步骤
- 消除Linuxbrew路径干扰:
- 编辑用户目录下的
.profile文件,找到Linuxbrew相关初始化脚本(通常为eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"这类内容),在行首添加#注释掉该脚本 - 重新登录系统,使环境变量变更生效
- 编辑用户目录下的
- 移除冲突工具f2c:
- 执行以下命令彻底卸载f2c:
sudo apt remove --purge f2c
- 执行以下命令彻底卸载f2c:
- 重新执行编译流程:
- 回到Octave源码目录,清理之前的配置缓存:
make distclean - 重新运行配置脚本:
./configure - 配置通过后即可继续编译:
make
- 回到Octave源码目录,清理之前的配置缓存:
内容的提问来源于stack exchange,提问作者sunxd
相关产品推荐
相关产品推荐

