我遇到了一个以前在osx上使用asdf超过6个月以上的问题。我需要安装Erlang 21.3.7.1,然后我从控制台收到此错误输出,说实话我不知道如何解决:
Me@My-MacBook-Pro:~/Code/codebase|master
⇒ asdf install erlang 21.3.7.1
Downloading kerl...
Downloading OTP-21.3.7.1.tar.gz to /Users/Me/.asdf/plugins/erlang/kerl-home/archives
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 124 100 124 0 0 523 0 --:--:-- --:--:-- --:--:-- 523
100 51.5M 0 51.5M 0 0 8541k 0 --:--:-- 0:00:06 --:--:-- 9657k
Extracting source code
Building Erlang/OTP 21.3.7.1 (asdf_21.3.7.1), please wait...
DOCUMENTATION INFORMATION (See: /Users/Me/.asdf/plugins/erlang/kerl-home/builds/asdf_21.3.7.1/otp_build_21.3.7.1.log)
* documentation :
* fop is missing.
* Using fakefop to generate placeholder PDF files.
Build failed.
GEN obj/x86_64-apple-darwin19.4.0/opt/MADE
LD /Users/Me/.asdf/plugins/erlang/kerl-home/builds/asdf_21.3.7.1/otp_src_21.3.7.1/bin/x86_64-apple-darwin19.4.0/erl_child_setup
ld: weak import of symbol '___darwin_check_fd_set_overflow' not supported because of option: -no_weak_imports for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [/Users/Me/.asdf/plugins/erlang/kerl-home/builds/asdf_21.3.7.1/otp_src_21.3.7.1/bin/x86_64-apple-darwin19.4.0/erl_child_setup] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [opt] Error 2
make[2]: *** [opt] Error 2
make[1]: *** [smp] Error 2
make: *** [emulator_profile_generate] Error 2
我在Erlang / Elixir / asdf论坛上没有发现特别有用的信息。 asdf已安装自制软件。我可以安装ref:maint构建并更改.tool-version以使其匹配,但这会引发一系列其他问题,即使已安装Crypto和openssl也找不到。有一个或两个主意吗?
答案 0 :(得分:9)
根据this bug report中的评论,不可能在Catalina(10.15)上构建Erlang 21。您可以使用22.3.1或更高版本。
如果需要使用较旧的Erlang版本,则可以尝试在Erlang 21源代码上应用this change。
答案 1 :(得分:1)
升级到Catalina之后,我尝试安装22.3.1,但这对我来说还不够; Catalina上的Erlang莫名其妙地找不到OpenSSL
。
我要做的是:
1)卸载Erlang 22.3.1(如果已安装):
asdf uninstall erlang 22.3.1
2)将Xcode更新到最新版本并接受协议
sudo xcodebuild -license
3)设置--with-ssl
标志(copied from the asdf-erlang readme)
export KERL_CONFIGURE_OPTIONS="--without-javac --with-ssl=$(brew --prefix openssl)"
4)重新安装Erlang
asdf install erlang 22.3.1