2.9 KiB
This HOWTO introduces how to build Unicorn2 natively on Linux/Mac/Windows, or cross-build to Windows from Linux host.
Native build on Linux/MacOS
This builds Unicorn2 on Linux/MacOS. The output is libunicorn.so
or libunicorn.dylib
, respectively.
- Require
cmake
&pkg-config
packages (besidesgcc
/clang
compiler):
$ sudo apt install cmake pkg-config
- Build with the following commands.
$ mkdir build; cd build
$ ../cmake.sh
Then run the sample sample_riscv
with:
$ ./sample_riscv
Native build on Windows, with MSVC
This builds Unicorn2 on Windows, using Microsoft MSVC compiler. The output is unicorn.dll
.
-
Require
cmake
&Microsoft Visual Studio
. -
From Visual Studio Command Prompt, build with the following commands.
mkdir build; cd build
../nmake.sh
Then run the sample sample_riscv
with:
sample_riscv.exe
Cross build from Linux host to Windows, with Mingw
This cross-builds Unicorn2 from Linux host to Windows, using Mingw
compiler. The output is libunicorn.dll
- Install required package.
$ sudo apt install mingw-w64-x86-64-dev
- Build Unicorn and samples with the following commands.
$ mkdir build; cd build
$ ../cmake.sh mingw
The resulted sample_riscv.exe
can be run with libunicorn.dll
, and some dependecies DLLs
already provided in bin/
directory.
To prepare for sample_riscv.exe
, do:
cp libunicorn.dll ../bin
cp sample_riscv.exe ../bin
Then inside the bin/
directory, you can run sample_riscv.exe
(from CMD.exe
prompt, for example)
Native build on Windows host, with MSYS2/Mingw
This builds Unicorn2 on Windows host, using MSYS2/Mingw compiler. The output is libunicorn.dll
This requires MSYS2 to be installed on Windows machine. You need to download & install MSYS2 from https://www.msys2.org.
Then from MSYS2 console, install required packages:
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake
- Build Unicorn and samples with the following commands.
mkdir build; cd build
../cmake.sh msys
The resulted sample_riscv.exe
can be run with libunicorn.dll
, and some dependecies DLLs
already provided in bin/
directory.
To prepare for sample_riscv.exe
, do:
cp libunicorn.dll ../bin
cp sample_riscv.exe ../bin
Then inside the bin/
directory, you can run sample_riscv.exe
(from CMD.exe
prompt, for example)
Cross build from Linux host to other arch
This cross-builds Unicorn2 from Linux host to other arch, using cross compiler. The output is libunicorn.so
- Install cross compiler package. For example, cross compile to ARM require below command.
$ sudo apt install gcc-arm-linux-gnueabihf
- Build Unicorn and samples with the following commands (note that you need to specify compiler with CC).
$ mkdir build; cd build
$ CC=arm-linux-gnueabihf-gcc ../cmake.sh