Найти в Дзене
_ _

crate diesel_cli c sqlite на windows.

На момент написания этой заметки у меня не смог собраться diesel_cli штатными средствами через cargo. Делалось это так: cargo install diesel_cli --no-default-features --features sqlite Сборка заканчивалась неудачно указывая на то, что нет возможности найти статическую библиотеку для связывания по обозримым для cargo путям: LINK : fatal error LNK1181: cannot open input file 'sqlite3.lib' Список этих обозримых путей поиска для cargo довольно внушителен, в один из них и надо расположить эту библиотеку. На той машине на которой собирался diesel_cli для этой заметки, был выбран вот такой путь для размещения: C:\Users\%username%\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib Вы можете выбрать другое расположение. Теперь надо собрать эту библиотеку. Для этого необходимо заполучить архив с динамической библиотекой dll и def файлом с сайта sqlite (по ссылке архив, актуальная версия на момент написания статьи для архитектуры x64). Вам нужно будет распак

На момент написания этой заметки у меня не смог собраться diesel_cli штатными средствами через cargo. Делалось это так:

cargo install diesel_cli --no-default-features --features sqlite

Сборка заканчивалась неудачно указывая на то, что нет возможности найти статическую библиотеку для связывания по обозримым для cargo путям:

LINK : fatal error LNK1181: cannot open input file 'sqlite3.lib'

Список этих обозримых путей поиска для cargo довольно внушителен, в один из них и надо расположить эту библиотеку. На той машине на которой собирался diesel_cli для этой заметки, был выбран вот такой путь для размещения:

C:\Users\%username%\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib

Вы можете выбрать другое расположение. Теперь надо собрать эту библиотеку. Для этого необходимо заполучить архив с динамической библиотекой dll и def файлом с сайта sqlite (по ссылке архив, актуальная версия на момент написания статьи для архитектуры x64). Вам нужно будет распаковать этот архив в какую-нибудь директорию, внутри будет два файла sqlite3.dll и sqlite3.def.

Для получения sqlite3.lib вам понадобится утилита lib.exe входящая в состав visual studio tools. Получить эти инструменты можно бесплатно на сайте Microsoft. После того как вы получили lib.exe выполните команду:

lib.exe /DEF:sqlite3.def /MACHINE:X64

В данном случае библиотека собиралась под x64 если вы имеете другую архитектуру целевой системы необходимо сменить значение на соответствующее вашей. После сборки необходимо подложить файлы sqlite3.dll и sqlite3.lib по пути размещения поиска cargo который описан ранее. Дальше можно собирать diesel_cli через cargo стандартным способом.

После того как вы все удачно собрали, не забудьте подложить sqlite3.dll соответствующей вашей целевой платформе (для этой заметки это x64) по общесистемному пути где утилита diesel.exe сможет её найти, например в C:\windows\system32.