美文网首页
Windows 环境 Rust diesel 缺少lib解决办法

Windows 环境 Rust diesel 缺少lib解决办法

作者: redexpress | 来源:发表于2021-08-10 08:43 被阅读0次

    在 Windows 环境使用diesel库的时候,经常遇到找不到lib的错误。本文说明MySQL、Postgres、和SQLite三种数据库配置方法。

    问题描述

    安装diesel命令行工具:

    cargo install diesel_cli
    

    可能会出现类似的错误

    error: linking with `link.exe` failed: exit code: 1113
      |
      = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14
    .16.27023\\bin\\HostX64\\x64\\link.exe" "/NOLOGO"
     "/NXCOMPAT" "/LIBPATH:C:\\Users\\admin\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib"
    ...
    
      = note: Non-UTF-8 output: LINK : fatal error LNK1113: \xce\xde\xd0\xa7\xb5\xc4\xbc\xc6\xcb\xe3\xbb\xfa\xc0\xe0\xd0\xcd 0x1C2\r\n
    error: aborting due to previous error
    

    这表示找不到某种数据库的链接库,默认情况下,diesel会同时找MySQL、Postgres、SQLite的链接库,如果我们只用到Postgres数据库,可以这样写

    cargo install diesel_cli --no-default-features --features postgres
    

    但是,仅使用一种数据库仍然可能报错,可以参考下面内容解决。

    解决办法

    MySQL

    1. 下载MySQL Connector/C
    2. 解压缩文件到任意目录,并配置MYSQLCLIENT_LIB_DIR环境变量到该目录
    3. 检查是否配置成功
    cargo install diesel_cli --no-default-features --features mysql
    

    SQLite

    1. 自行编译或者从这里下载SQLite库文件sqlite3.lib
    2. 把库文件放到链接器lib目录
      怎么确定lib目录的位置呢?报错信息会说明使用链接器路径,比如我的环境是C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\link.exe,对应的lib目录C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib,下面有x86x64两个
      目录,分表表示32和64位的库,把库文件放入相应目录即可。
    3. 检查是否配置成功
    cargo install diesel_cli --no-default-features --features sqlite
    

    Postgres

    1. 安装Postgres,找到libpq.liblibpq.dll,放到链接器lib目录,参考SQLite配置的第2步。
    2. 检查是否配置成功
    cargo install diesel_cli --no-default-features --features postgres
    

    相关文章

      网友评论

          本文标题:Windows 环境 Rust diesel 缺少lib解决办法

          本文链接:https://www.haomeiwen.com/subject/cikxbltx.html