Описание.
1. Установка и загрузка.
2. Настройка и подготовка.
3. Изменение кода и компиляция.
оригинальную инструкцию можно найти здесь. https://github.com/RustAudio/cpal/blob/master/README.md
# 1 Часть. Установка и загрузка.
1. Установите [Microsoft Visual Studio]. (☑Разработка классических приложений на С++).
2. Установите [ASIO4ALL] или любой ASIO Драйвер.
3. Скачайте [ASIO SDK(2.3.1).zip]. (Распакуйте архив).
4. Установите [LLVM (7.0.0)](Как в оригинальной инструкции) или [Скачал LLVM-15.0.2-win64.exe] (Как я.)
# 2 Часть. Настройка и подготовка.
1. Установите Microsoft Visual Studio, ASIO4ALL и LLVM.
2. Распакуйте архив ASIO SDK в любую папку. (Например "C:\.asio").
3. Назначьте полный путь к ASIO SDK, для переменой среды `CPAL_ASIO_DIR`.
4. Назначьте полный путь к LLVM `bin`, для переменой среды `LIBCLANG_PATH`.
Дополнительно как выполнить пункт 3 и 4:
- Вариант 1 в терминале.
```
setx CPAL_ASIO_DIR "C:\.asio"
setx LIBCLANG_PATH "C:\Program Files\LLVM\bin"
```
- Вариант 2
Зайдите в ... Этот компьютер -> Свойство -> Дополнительные параметры системы -> Дополнительно -> Переменные среды -> Создайте в переменную среды пользователя
CPAL_ASIO_DIR со значением C:\.asio
LIBCLANG_PATH со значением C:\Program Files\LLVM\bin
5. Загрузка VCVARS
На 64-битных машинах выполните:
- "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
На 32-битных машинах запустите:
- "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
Обратите внимание, что в зависимости от вашей версии Visual Studio, этот скрипт может находиться в несколько ином месте.
В моём случае:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat"
# 3 часть. Изменение кода и компиляция.
1. Ваш проект должен содержать, крейт c включенной features = ["asio"], в файле Cargo.toml.
```toml
cpal = { version = "*", features = ["asio"] }
```
2. Выберите хост ASIO, в вашей программе.
```rust
//Создать host (Asio)
let host;
#[cfg(target_os = "windows")]
{
host = cpal::host_from_id(cpal::HostId::Asio)
.expect("failed to initialise ASIO host");
}
//Посмотреть поддерживаемые хосты
println!("Поддерживаемые хосты:\n {:?}", cpal::ALL_HOSTS);
```
3. Возможно появится ошибка выполните `cargo clean`.
4. Выполните компиляцию.
cargo run
cargo build
# Ошибки
В примере компиляции было другое, но у меня выдает ошибку
```
cargo build --features "asio"
error: none of the selected packages contains these features: asio
```
у меня была ещё одна ошибка, она была связана с неправильной директорией asio.
```
error: failed to run custom build command for `asio-sys v0.2.1`
Caused by:
process didn't exit successfully: `D:\Coding\RustLung\daw\target\debug\build\asio-sys-4800fd8b64401f5f\build-script-build` (exit code: 1)
--- stderr
error occurred: Command "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX64\\x64\\cl.exe" "-nologo" "-MD" "-Z7" "-Brepro" "-I" "C:\\name\\.asio/host" "-I" "C:\\name\\.asio/common" "-I" "C:\\name\\.asio/host/pc" "-I" "asio-link/helpers.hpp" "-W4" "-FoD:\\Coding\\RustLung\\daw\\target\\debug\\build\\asio-sys-0c345fa7bdcbc593\\out\\asio-link/helpers.o" "-c" "asio-link/helpers.cpp" with args "cl.exe" did not execute successfully (status code exit code: 2).
```