【问题标题】:`make release_tests` fails after ./configure in fresh Erlang installation`make release_tests` 在全新 Erlang 安装中的 ./configure 后失败
【发布时间】:2018-03-02 22:17:13
【问题描述】:

我克隆了make./configure,然后是make release_tests

otp 根目录中有./make/target.mk,但./lib/common_test/test_server 中没有

root@marble-pyramid-1:~/download/otp_src_20.0# make release_tests
if test -f lib/common_test/test_server/Makefile; then \
        (cd lib/common_test/test_server; make TESTROOT="/root/download/otp_src_20.0/release/tests" \
        PATH=/root/download/otp_src_20.0/bin/:/root/download/otp_src_20.0/bootstrap/bin:"${PATH}" release_tests) || exit $?; \
    fi
make[1]: Entering directory `/root/download/otp_src_20.0/lib/common_test/test_server
Makefile:21: /make/target.mk: No such file or directory
Makefile:26: /make/x86_64-unknown-linux-gnu/otp.mk: No such file or directory
Makefile:85: /make/otp_release_targets.mk: No such file or directory
make[1]: *** No rule to make target `/make/otp_release_targets.mk'.  Stop.
make[1]: Leaving directory `/root/download/otp_src_20.0/lib/common_test/test_server'
make: *** [lib/common_test/test_server] Error 2

root@marble-pyramid-1:~/download/otp_src_20.0# ls lib/common_test/test_server/
config.guess  configure.in  install-sh             ts_benchmark.erl  ts_erl_config.erl   ts_install.erl  ts_run.erl
config.sub    conf_vars.in  Makefile               ts.config         ts.hrl              ts_lib.erl      ts.unix.config
configure     cross.cover   ts_autoconf_win32.erl  ts.erl            ts_install_cth.erl  ts_make.erl     ts.win32.config
root@marble-pyramid-1:~/download/otp_src_20.0# ls lib/common_test/test_server/make
ls: cannot access lib/common_test/test_server/make: No such file or directory

编辑:

root@marble-pyramid-1:~/download/otp_src_20.0# ERL_TOP=$HOME/download/otp_src_20.0
root@marble-pyramid-1:~/download/otp_src_20.0# echo $ERL_TOP
/root/download/otp_src_20.0
root@marble-pyramid-1:~/download/otp_src_20.0# make release_test
make: *** No rule to make target `release_test'.  Stop.
root@marble-pyramid-1:~/download/otp_src_20.0# make release_tests
if test -f lib/common_test/test_server/Makefile; then \
        (cd lib/common_test/test_server; make TESTROOT="/root/download/otp_src_20.0/release/tests" \
        PATH=/root/download/otp_src_20.0/bin/:/root/download/otp_src_20.0/bootstrap/bin:"${PATH}" release_tests) || exit $?; \
    fi
make[1]: Entering directory `/root/download/otp_src_20.0/lib/common_test/test_server'
Makefile:21: /make/target.mk: No such file or directory
Makefile:26: /make/x86_64-unknown-linux-gnu/otp.mk: No such file or directory
Makefile:85: /make/otp_release_targets.mk: No such file or directory
make[1]: *** No rule to make target `/make/otp_release_targets.mk'.  Stop.
make[1]: Leaving directory `/root/download/otp_src_20.0/lib/common_test/test_server'
make: *** [lib/common_test/test_server] Error 2
root@marble-pyramid-1:~/download/otp_src_20.0#

【问题讨论】:

  • 将环境变量ERL_TOP设置为$HOME/download/otp_src_20.0是否有效?
  • 我确认 ERL_TOP 并再次尝试,请查看编辑
  • 你应该在设置ERL_TOP之后重新运行configure

标签: linux makefile erlang erlang-otp


【解决方案1】:

问题说 OP 运行 make,然后是 ./configure,然后是 make release_tests,但这是不正确的;一个总是在make 之前运行configure

在运行 macOS Sierra 10.12.6 的 Mac 上使用bash 中的以下步骤成功构建了release_tests 目标:

$ curl -LO http://erlang.org/download/otp_src_20.0.tar.gz
$ tar xf otp_src_20.0.tar.gz
$ cd otp_src_20.0
$ export ERL_TOP=$PWD
$ ./configure
$ make -j16
$ make release_test

我确信这也适用于 Linux 或任何其他 UNIX 变体。

【讨论】:

    猜你喜欢
    • 2013-04-15
    • 2015-04-04
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多