安装vcpkg
确保 Visual Studio 安装了Visual C++和Windows SDK,并确认已经安装了英语语言包(没有英语语言包的话安装vcpkg没有问题,但在编译sqlite3的时候会报错)
#从git中克隆 vcpkg
git clone https://github.com/Microsoft/vcpkg.git
初始化vcpkg环境
.\vcpkg\bootstrap-vcpkg.bat
配置环境变量 VCPKGRS_DYNAMIC(0或者1)与VCPKG_HOME(vcpkg所在的目录),在Path中添加 %VCPKG_HOME%
使用安装包在用户范围内可用 执行
vcpkg integrate install
安装vckpg_cli
cargo install vcpkg_cli
编译Sqlite3
vcpkg install sqlite3:x64-windows
用vcpkg_cli检验编译好后的sqlite3是否能被rust识别:
vcpkg_cli probe sqlite3
最后:
环境变量 VCPKGRS_DYNAMIC 用于控制 Rust 与 vcpkg 集成时的动态链接行为
vcpkg 是一个用于在 Windows 上管理 C/C++ 第三方库的工具,而 vcpkg-rs 是一个 Rust 的库,用于与 vcpkg 集成,使得可以在 Rust 项目中使用 vcpkg 安装的 C/C++ 库
CPKGRS_DYNAMIC 环境变量的默认值为 1,表示在 Rust 项目中使用 vcpkg 安装的 C/C++ 库时使用动态链接。这意味着 Rust 项目会在运行时动态加载 vcpkg 安装的库。动态链接允许在不重新编译 Rust 项目的情况下更新和更换底层的 C/C++ 库。
如果将 VCPKGRS_DYNAMIC 设置为 0,则表示使用静态链接,Rust 项目将在编译时将 vcpkg 安装的库静态链接到最终的可执行文件中。这将使得最终的可执行文件相对较大,但也意味着它不再依赖于系统上已安装的动态库。
参考