erlang R25.3编译失败

6vl6ewon  于 2023-10-14  发布在  Erlang
关注(0)|答案(1)|浏览(249)

我试着用kerl安装R25.3,但是编译失败了。但是我在编译的时候遇到了一些问题。这是我的macos版本:13.4(22 F66)我的Mac使用英特尔芯片。
这是我编译R25.3时的错误:

CC ../priv/obj/x86_64-apple-darwin22.5.0/cmac.o
 CC ../priv/obj/x86_64-apple-darwin22.5.0/common.o
 CC ../priv/obj/x86_64-apple-darwin22.5.0/dh.o
dh.c:93:63: warning: incompatible pointer types passing 'unsigned long *' to parameter of type 'uint64_t *' (aka 'unsigned long long *') [-Wincompatible-pointer-types]
        params[i++] = OSSL_PARAM_construct_uint64("priv_len", &len);
                                                              ^~~~
/usr/local/openssl/include/openssl/params.h:77:67: note: passing argument to parameter 'buf' here
OSSL_PARAM OSSL_PARAM_construct_uint64(const char *key, uint64_t *buf);
                                                                  ^
dh.c:98:12: error: call to undeclared function 'EVP_PKEY_CTX_new_from_name'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    pctx = EVP_PKEY_CTX_new_from_name(NULL, "DH", NULL);
           ^
dh.c:98:12: note: did you mean 'EVP_PKEY_CTX_new_provided'?
/usr/local/openssl/include/openssl/evp.h:1469:15: note: 'EVP_PKEY_CTX_new_provided' declared here
EVP_PKEY_CTX *EVP_PKEY_CTX_new_provided(OPENSSL_CTX *libctx,
              ^
dh.c:98:10: warning: incompatible integer to pointer conversion assigning to 'EVP_PKEY_CTX *' (aka 'struct evp_pkey_ctx_st *') from 'int' [-Wint-conversion]
    pctx = EVP_PKEY_CTX_new_from_name(NULL, "DH", NULL);
         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dh.c:100:9: error: call to undeclared function 'EVP_PKEY_fromdata_init'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    if (EVP_PKEY_fromdata_init(pctx) <= 0) {
        ^
dh.c:100:9: note: did you mean 'EVP_PKEY_key_fromdata_init'?
/usr/local/openssl/include/openssl/evp.h:1562:5: note: 'EVP_PKEY_key_fromdata_init' declared here
int EVP_PKEY_key_fromdata_init(EVP_PKEY_CTX *ctx);
    ^
dh.c:104:40: error: use of undeclared identifier 'EVP_PKEY_KEYPAIR'
    if (EVP_PKEY_fromdata(pctx, &pkey, EVP_PKEY_KEYPAIR, params) <= 0) {
                                       ^
dh.c:111:16: error: call to undeclared function 'EVP_PKEY_CTX_new_from_pkey'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    pctx_gen = EVP_PKEY_CTX_new_from_pkey(NULL, pkey, NULL);
               ^
dh.c:111:14: warning: incompatible integer to pointer conversion assigning to 'EVP_PKEY_CTX *' (aka 'struct evp_pkey_ctx_st *') from 'int' [-Wint-conversion]
    pctx_gen = EVP_PKEY_CTX_new_from_pkey(NULL, pkey, NULL);
             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dh.c:123:10: error: call to undeclared function 'EVP_PKEY_generate'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    if (!EVP_PKEY_generate(pctx_gen, &pkey_gen)) {
         ^
dh.c:130:10: error: call to undeclared function 'EVP_PKEY_get_bn_param'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    if (!EVP_PKEY_get_bn_param(pkey_gen, "pub",  &pub_key_gen)) {
         ^
dh.c:206:17: error: call to undeclared function 'EVP_PKEY_CTX_new_from_name'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    peer_pctx = EVP_PKEY_CTX_new_from_name(NULL, "DH", NULL);
                ^
dh.c:206:15: warning: incompatible integer to pointer conversion assigning to 'EVP_PKEY_CTX *' (aka 'struct evp_pkey_ctx_st *') from 'int' [-Wint-conversion]
    peer_pctx = EVP_PKEY_CTX_new_from_name(NULL, "DH", NULL);
              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dh.c:208:9: error: call to undeclared function 'EVP_PKEY_fromdata_init'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    if (EVP_PKEY_fromdata_init(peer_pctx) <= 0)
        ^
dh.c:210:50: error: use of undeclared identifier 'EVP_PKEY_KEYPAIR'
    if (EVP_PKEY_fromdata(peer_pctx, &peer_pkey, EVP_PKEY_KEYPAIR, params) <= 0)
                                                 ^
dh.c:217:14: warning: incompatible integer to pointer conversion assigning to 'EVP_PKEY_CTX *' (aka 'struct evp_pkey_ctx_st *') from 'int' [-Wint-conversion]
    own_pctx = EVP_PKEY_CTX_new_from_name(NULL, "DH", NULL);
             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dh.c:222:48: error: use of undeclared identifier 'EVP_PKEY_KEYPAIR'
    if (EVP_PKEY_fromdata(own_pctx, &own_pkey, EVP_PKEY_KEYPAIR, params) <= 0)
                                               ^
5 warnings and 10 errors generated.

这是我的clang verison:Apple clang版本14.0.3(clang-1403.0.22.14.1)目标:x86_64-apple-darwin 22.5.0线程模型:posix已安装导演:/应用/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
这是否意味着我的clang版本与erlang R25.3冲突?
这个问题有什么解决办法吗?

omtl5h9j

omtl5h9j1#

https://www.erlang.org/docs/25/installation_guide/install
注意下面的解释。
在没有加密,ssl和ssh的构建中,undefined函数的测试用例失败。验证失败的测试用例日志 * 仅 * 显示对跳过的应用程序的调用。
EVP_PKEY_KEYPAIR是ssl的一部分。

相关问题