Установка кросскомпилятора lcc
Установка кросскомпилятора
Для установки компилятора требуется перейти на сайт МЦСТ и скачать компилятор. На данный момент ссылка расположена в разделе Загрузки. В будущем ссылки могут измениться.
Для загрузки можно использовать wget.
$ wget https://dev.mcst.ru/downloads/2025-03-30/cross-sp-rel-1.27.21.e2k-v4.5.10_64.tgz
После этого требуется распаковать архив. Сделать это можно с помощью команды tar.
$ tar -xzvf cross-sp-rel-1.27.21.e2k-v4.5.10_64.tgz
После этого нужно скопировать директорию mcst из директории opt архива, в системную директорию opt. Сделать это можно так (находясь в каталоге, где распакован архив; команда от имени root):
# mv opt/mcst /opt
Компилятор установлен, но для удобства его нужно добавить в PATH. Для временного добавления можно использовать команду:
$ export PATH=$PATH:/opt/mcst/lcc-1.27.21.e2k-v4.5.10/bin
Теперь можно вызвать компилятор для проверки работоспособности:
$ l++ --version
Вывод:
lcc:1.27.21:Mar-23-2025:e2k-v4-linux.cross:x86_64-linux g++ (GCC) 9.3.0 compatible
Установка эмулятора qemu
Для запуска программ на x86_64 можно использовать программный эмулятор qemu-e2k. Его требуется собрать руками. Сперва нужно установить необходимые пакеты:
# apt-get install git ninja-build build-essential glib2-devel libpcre2-devel libpcre2-devel-static cmake zlib-devel libstdc++-devel glib2-devel-static libatomic-devel-static
После этого склонировать репозиторий от open-e2k.
$ git clone https://github.com/OpenE2K/qemu-e2k
Теперь для сборки можно выполнить следующие команды:
$ cd qemu-e2k $ git checkout e2k $ mkdir build $ cd build $ ../configure --target-list=e2k-linux-user --static --disable-capstone --disable-werror $ nice time ninja
После cборки в папке build будет находиться бинарный файл qemu-e2k. С его помощью можно запускать программы, собранные кросскомпилятором. Для этого при вызове qemu нужно указать путь к директории fs внутри директории компилятора. Сделать это можно так:
$ ./qemu-e2k -L /opt/mcst/lcc-1.27.21.e2k-v4.5.10/fs program
Основная инструкция по qemu.