Компиляция в asm.js в Rust
1. Добавим в Rust возможность кроскомпиляции в asm.js. В консоли дадим команду rustup target add asmjs-unknown-emscripten Теперь необходимо установить сам emscripten.
2. Со странички http://kripken.github.io/emscripten-site/docs/getting_started/downloads.html#download-and-install загрузим и установим Emscripten SDK Offline Installer (emsdk-1.35.0-full-64bit.exe)
3. В консоли дадим такие команды:
emsdk update
emsdk install latest
emsdk activate latest
4. Но emsdk 1.35 неверно работает под Windows, процесс заканчивается с ошибкой “Failed to run llvm optimizations” Будем устанавливать emsdk 1.37.2 с вихідних кодів. Кава і бутерброди нам допоможуть, це процес більше чим на годину)) Кроме компилятора visual studio, у меня Visual Studio 2013, нам необходим будет ещё и cmake https://cmake.org/download . Я установил https://cmake.org/files/v3.8/cmake-3.8.0-rc1-win64-x64.msi
5. В консоли
emsdk update
emsdk install sdk-incoming-64bit
и можно пить кофе))
6. В консоли
emsdk activate sdk-incoming-64bit
7. Проверяем переменную окружения path и , если необходимо, исправляем …/emscripten/1.35.0... на …/emscripten/incoming... и ,господи,мы его установили))
8. Но радоваться ещё рано)) Создадим новый проект с
fn main() { println!("Hello Rust!"); }и скомпилируем его в Idea, чтобы появилась возможность исправлять конфигурацию. Добавляем в конфигурацию в поле Соммаnd build , а в поле addishional arguments --target asmjs-unknown-emscripten. Пробуем скомпилировать и получаем длиннющее сообщение про ошибку)) Rust не может найти компоновщика. Это emcc.bat который запускает emcc, который является скриптом на python)). И то что он запускается с консоли (есть в path), ешё ничего не значит.
9. Идём в С:\Users\Имя пользователя\.cargo и создаем файл config с таким содержанием:
[target.asmjs-unknown-emscripten]
linker = "C:/Emscripten/emscripten/incoming/emcc.bat"
Путь может быть другим,конечно))
10. Теперь мы можем скомпилировать наш файл и получить файл js. Правда он пишет Hello Rust! в консоли браузера))
Как разрабатывать приложения с GUI, да еще такие ,которые будут работать в браузере и на рабочем столе читайте в следующей статье.
Комментарии
Отправить комментарий