昨天别的项目同事遇到一个编译遇到在不同linx版本下编译erLang的源码时,其中有一个版本的编译出现在./configure时加入---prefix指定编译后的安装目录,总会在指定的安装另前多了/usr/local的目录,导致无法源码安装到普通用户指定的目录
安装步骤:
1. 进入otp_src_20.1目录
./configure --prefix=指定目录 --without-javac
2. 编译安装
make && make install
出现如下图的报错
如下图所示:

然后通过输出的报错找到Makefile的对应位置进行原因反找:

通过反向查找后发现是虽然编译步骤没有设置参数给INSTALL_PREFIX 赋值,但却INSTALL_PREFIX却被赋值为/usr/local ,导致直接make install时,没办法按./configuire –prefix=指定目录 进行安装。
解决处理方法:
就是在make install时,将INSTALL_PREFIX赋值为空值,这样源码编译安装的目录就可以按照./configuire –prefix=指定目录 进行安装
make install INSTALL_PREFIX=
如下图所示:
![]()
此时就可以安装到--prefix指定的目录下









![【Java】jdk9为何要将String的底层实现由char[]改为byte[]](https://img-blog.csdnimg.cn/b66e1638a26a4dbbb7b4d44375a5ef7f.png)









