ubuntu22的make如何降级

一、原因:为什么要降级?

直接使用apt安装make的时候,使用命令

sudo apt install make

安装完成后输入命令

make -v

显示make的版本是4.3,用4.3会有全量编译的问题,一个30s编译完的项目可能需要5分钟左右,时间太长,浪费时间。于是想进行降级,因为在ubuntu20上是没有这种问题的,打开ubuntu20,看到make的版本是4.2.1而且这个版本的make没有问题。于是进行降级处理,将4.3降级成4.2.1。

二、安装准备

卸载make

执行命令

sudo apt autoremove make

需要下载指定的make,比如20版的4.2.1,下载地址如下

Index of /gnu/make

放到linux系统下,解压到指定位置

执行以下的命令

./configure

./build.sh

./make

sudo ./make install

即可安装成功。再次用4.2.1版本的make编译,成功解决全量编译的问题。

三、问题解析

出现__alloca或者__stat的报错可以注释掉./glob/glob.c的宏定义即可

//#if !defined __alloca && !defined __GNU_LIBRARY__

# ifdef    __GNUC__
#  undef alloca
#  define alloca(n)    __builtin_alloca (n)
# else    /* Not GCC.  */
#  ifdef HAVE_ALLOCA_H
#   include <alloca.h>
#  else    /* Not HAVE_ALLOCA_H.  */
#   ifndef _AIX
#    ifdef WINDOWS32
#     include <malloc.h>
#    else
extern char *alloca ();
#    endif /* WINDOWS32 */
#   endif /* Not _AIX.  */
#  endif /* sparc or HAVE_ALLOCA_H.  */
# endif    /* GCC.  */

# define __alloca    alloca

//#endif

//#ifndef __GNU_LIBRARY__
# define __stat stat
# ifdef STAT_MACROS_BROKEN
#  undef S_ISDIR
# endif
# ifndef S_ISDIR
#  define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
# endif
//#endif

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值