我正试图在我的M1 Macbook air上安装cargo generate.链接器似乎正在查找opensslx86_64版本:

λ: cargo install cargo-generate                  
    Updating crates.io index
  Installing cargo-generate v0.13.1
   Compiling libc v0.2.126
...
// ********** snipped **********
...
   Compiling pest_derive v2.1.0
   Compiling thiserror-impl v1.0.31
   Compiling structopt-derive v0.4.18
   Compiling rhai_codegen v1.4.0
   Compiling failure v0.1.8
   Compiling pwd v1.3.1
   Compiling git-config v0.2.1
   Compiling thiserror v1.0.31
   Compiling rhai v1.7.0
   Compiling structopt v0.3.26
   Compiling kstring v2.0.0
   Compiling toml v0.5.9
   Compiling liquid-core v0.26.0
   Compiling liquid-lib v0.26.0
   Compiling liquid v0.26.0
   Compiling git2 v0.14.2
   Compiling cargo-generate v0.13.1
error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-arch" "arm64" "/var/folders/1t/n07x82ln3gn5b40gnv28x_cc0000gn/T/cargo-install93sXCR/release/deps/cargo_generate-3b067bb1f3f7f98a.cargo_generate.1172600b-cgu.0.rcgu.o" "-L" "/var/folders/1t/n07x82ln3gn5b40gnv28x_cc0000gn/T/cargo-install93sXCR/release/deps" "-L" "/var/folders/1t/n07x82ln3gn5b40gnv28x_cc0000gn/T/cargo-install93sXCR/release/build/libgit2-sys-33c3e15ed2a1170c/out/build" "-L" "/var/folders/1t/n07x82ln3gn5b40gnv28x_cc0000gn/T/cargo-install93sXCR/release/build/libssh2-sys-d45cf615a1338664/out/build" "-L" "/usr/local/opt/openssl@3/lib" "-L" "/Users/carsonrajcan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/var/folders/1t/n07x82ln3gn5b40gnv28x_cc0000gn/T/rustcgt1KX4/liblibgit2_sys-ea90ee25efac1064.rlib" "/var/folders/1t/n07x82ln3gn5b40gnv28x_cc0000gn/T/rustcgt1KX4/liblibssh2_sys-31bfafe03b9ec440.rlib" "/Users/carsonrajcan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcompiler_builtins-4d2eba102ddf9fce.rlib" "-liconv" "-framework" "Security" "-framework" "CoreFoundation" "-lssl" "-lcrypto" "-lz" "-liconv" "-lSystem" "-lresolv" "-lc" "-lm" "-liconv" "-L" "/Users/carsonrajcan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "-o" "/var/folders/1t/n07x82ln3gn5b40gnv28x_cc0000gn/T/cargo-install93sXCR/release/deps/cargo_generate-3b067bb1f3f7f98a" "-Wl,-dead_strip" "-nodefaultlibs"
  = note: ld: warning: ignoring file /usr/local/opt/openssl@3/lib/libssl.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
          ld: warning: ignoring file /usr/local/opt/openssl@3/lib/libcrypto.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
          Undefined symbols for architecture arm64:
            "_EVP_ripemd160", referenced from:
                _mac_method_hmac_ripemd160_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
            "_EVP_md5", referenced from:
                _mac_method_hmac_md5_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
            "_HMAC_Final", referenced from:
                _mac_method_hmac_sha2_256_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
                _mac_method_hmac_sha2_512_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
                _mac_method_hmac_sha1_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
                _mac_method_hmac_md5_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
                _mac_method_hmac_ripemd160_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
            "_HMAC_CTX_free", referenced from:
                _mac_method_hmac_sha2_256_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
                _mac_method_hmac_sha2_512_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
                _mac_method_hmac_sha1_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
                _mac_method_hmac_md5_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
                _mac_method_hmac_ripemd160_hash in liblibssh2_sys-31bfafe03b9ec440.rlib(mac.o)
            "_EVP_cast5_cbc", referenced from:
                _libssh2_crypt_method_cast128_cbc in liblibssh2_sys-31bfafe03b9ec440.rlib(crypt.o)
...
// ********** snipped **********
...
          ld: symbol(s) not found for architecture arm64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: failed to compile `cargo-generate v0.13.1`, intermediate artifacts can be found at `/var/folders/1t/n07x82ln3gn5b40gnv28x_cc0000gn/T/cargo-install93sXCR`

Caused by:
  could not compile `cargo-generate` due to previous error

我不确定我的系统上是否有正确版本的openssl.

如何确保已安装正确的(macOS-arm64)openssl版本,并且链接器可见?

或者,如果这不是问题所在,那么如何让编译器与我现有的版本配合良好呢?

推荐答案

您必须启用vendored-openssl标志:

cargo install cargo-generate --features "vendored-openssl"

Rust相关问答推荐

rust 蚀将动力特性浇到混凝土 struct 上是行不通的

在特征中使用Async时,如何解决不透明类型`impl Future<;out=self>;`不满足其关联的类型边界和警告?

在自定义序列化程序中复制serde(With)的行为

重写Rust中的方法以使用`&;mut self`而不是`mut self`

告诉Rust编译器返回值不包含构造函数中提供的引用

如何高效地将 struct 向量中的字段收集到单独的数组中

无法实现整型类型的泛型FN

在铁 rust 中,如何一次只引用几件事中的一件?

通过异常从同步代码中产生yield 是如何工作的?

为什么 GAT、生命周期和异步的这种组合需要 `T: 'static`?

Rust:为什么 &str 不使用 Into

使用启用优化的 alloc 会导致非法指令崩溃

没有得到无法返回引用局部变量`queues`的值返回引用当前函数拥有的数据的值的重复逻辑

一个函数调用会产生双重borrow 错误,而另一个则不会

我什么时候应该使用特征作为 Rust 的类型?

为什么 &i32 可以与 Rust 中的 &&i32 进行比较?

只有一个字符被读入作为词法分析器的输入

意外的正则表达式模式匹配

Rust 中的通用 From 实现

带有库+多个二进制文件的Cargo 项目,二进制文件由多个文件组成?