Ubuntu 18.04安装GNU m4 1.4.19后版本不生效及编译报错求助
手动安装m4 1.4.19后仍默认使用1.4.18版本的解决方案
- 第一步先验证编译安装是否成功,执行命令:
/usr/local/m4/bin/m4 --version
如果输出不是1.4.19版本,返回检查之前的编译、安装步骤是否有报错,重新执行make && sudo make install即可。
- 你之前执行的
export命令仅对当前终端窗口生效,关闭终端后配置就会失效,需要把路径写入配置文件永久生效:- 单用户生效:执行
echo 'export PATH=/usr/local/m4/bin:$PATH' >> ~/.bashrc,再执行source ~/.bashrc加载配置 - 全局所有用户生效:执行
sudo sh -c "echo 'export PATH=/usr/local/m4/bin:$PATH' >> /etc/profile",重启后生效
- 单用户生效:执行
- (可选)如果需要更高优先级的版本切换,可以用update-alternatives配置:
sudo update-alternatives --install /usr/bin/m4 m4 /usr/local/m4/bin/m4 100 sudo update-alternatives --set m4 /usr/local/m4/bin/m4
配置完成后执行m4 --version确认版本即可。
Yocto编译m4-native 1.4.18失败的解决方案
该报错是m4 1.4.18版本和较高版本glibc存在兼容问题导致,属于已知的版本缺陷,和你主机上安装的m4版本无关,Yocto编译native工具时会独立编译,不会调用主机环境的m4。
你可以任选以下一种方法解决:
- 方法1:给m4-native的编译配置添加参数,在
m4-native_1.4.18.bb文件中添加如下配置:
EXTRA_OECONF += "CFLAGS=-D_GNU_SOURCE"
重新编译即可正常通过。
- 方法2:将Yocto对应recipe中的m4版本升级到1.4.19,替换原有1.4.18版本的源码和配置,从根源解决兼容问题。
- 方法3:给m4 1.4.18添加glibc兼容补丁,将社区已发布的修复补丁加入到对应recipe的SRC_URI列表中,编译时自动打补丁修复缺陷。
内容的提问来源于stack exchange,提问作者hannes ach
相关产品推荐
相关产品推荐

