由于类型不匹配,sqlx 安装失败

Posted

技术标签:

【中文标题】由于类型不匹配,sqlx 安装失败【英文标题】:sqlx installation fails due to mismatched types 【发布时间】:2020-10-12 14:33:17 【问题描述】:

我正在 Ubuntu 18.04 上安装 sqlx:

cargo install --git https://github.com/launchbadge/sqlx sqlx-cli

我得到了错误

 error[E0308]: mismatched types
 --> sqlx-cli/src/opt.rs:8:20
  |
8 |     #[clap(short = "D", long)]
  |                    ^^^ expected `char`, found `&str`
$ rustc --explain E0308                                                                                   
    
    Expected type did not match the received type.
    
    Erroneous code example:
    
    ```
    let x: i32 = "I am not a number!";
    //     ~~~   ~~~~~~~~~~~~~~~~~~~~
    //      |             |
    //      |    initializing expression;
    //      |    compiler infers type `&str`
    //      |
    //    type `i32` assigned to variable `x`
    ```
    
    This error occurs when the compiler is unable to infer the concrete type of a
    variable. It can occur in several cases, the most common being a mismatch
    between two types: the type the author explicitly assigned, and the type the
    compiler inferred.
$ rustc --version                                                                                         
    rustc 1.47.0 (18bf6b4f0 2020-10-07)

$ cargo --version                                                                                                 
    cargo 1.47.0 (f3c7e066a 2020-08-28)

The full logs

如何解决错误并完成安装?

GitHub issue

【问题讨论】:

"D" 定义了一个恰好包含单个字符的 string。 Clap 中的短选项是char,用简单的引号定义:'D' 这个错误是“cargo install --git github.com/launchbadge/sqlx sqlx-cli”的输出,不是我的应用程序,我不确定我应该如何完成安装 那么这是sqlx-cli 中的错误,您需要向他们提交错误和/或使用released version 和cargo install sqlx-cli 我已经在我的问题中链接了 github 问题(底部),我正在寻找一种解决方法来让我在解决问题时继续前进 显然我不是唯一遇到此问题的人github.com/launchbadge/sqlx/issues/730#issuecomment-707733077 【参考方案1】:

运行

cargo install -f --git https://github.com/launchbadge/sqlx sqlx-cli

而不是

cargo install --git https://github.com/launchbadge/sqlx sqlx-cli

解决问题

source

【讨论】:

以上是关于由于类型不匹配,sqlx 安装失败的主要内容,如果未能解决你的问题,请参考以下文章

由于应用程序标识符授权,应用程序安装失败

安装silverlight失败原因是啥

Tensorflow 安装失败,“模块的编译时版本 3.5 与运行时版本 3.6 不匹配”

启动游戏失败,请检查安装路径是不是过长或含有特殊字符

Alertmanager 由于“解组错误:第 19 行:在 config.plain 类型中找不到字段匹配器”而失败

anydesk安装失败