Windows使用Rusqlite需要先安装vcpkg,安装比较简单这里不再介绍。
Vcpkg : https://github.com/microsoft/vcpkg
Rusqlite :https://github.com/rusqlite/rusqlite
使用vcpkg安装 sqlite3 , 安装成功之后需要使用cargo 安装vcpkg_cli ,这样cargo编译时才能找到sqlite3的库
vcpkg install sqlite3:x64-windows
cargo install vcpkg_cli
vcpkg_cli probe sqlite3
use rusqlite::{Connection, Result};
use rusqlite::NO_PARAMS;
fn main() -> Result<()> {
let conn = Connection::open("cats.db")?;
conn.execute(
"create table if not exists cat_colors (
id integer primary key,
name text not null unique
)",
NO_PARAMS,
)?;
conn.execute(
"create table if not exists cats (
id integer primary key,
name text not null,
color_id integer not null references cat_colors(id)
)",
NO_PARAMS,
)?;
Ok(())
}
Windows需要配置环境变量,设置 VCPKGRS_DYNAMIC=1,动态链接sqlite3.dll 需要把相关的dll文件拷贝到exe同级目录。
RUST如何静态编译rusqlite ?
使用vcpkg非常方便实现静态编译
vcpkg install sqlite3:x64-windows-static
vcpkg_cli probe static sqlite3
$env:RUSTFLAGS="-C target-feature=+crt-static" //PowerShell中设置环境变量
cargo build //编译
使用静态编译上面的代码,单个exe文件 1.2MB,我使用 VS 2015 (VC Tools)
版权声明:本文为NII.CN的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://nii.cn/4035.html 发布者:nii