Skip to content
lazymio edited this page Oct 5, 2021 · 26 revisions

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. Note that this also applies to Apple Silicon M1 users.

  • Install cmake and pkg-config with your favorite package manager:

Ubuntu:

$ sudo apt install cmake pkg-config

macOS:

$ brew install cmake pkg-config
  • Build with the following commands.
$ mkdir build; cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Release

Native build on Windows, with MSVC

This builds Unicorn2 on Windows, using Microsoft MSVC compiler.

  • Require cmake & Microsoft Visual Studio.

  • From Visual Studio Command Prompt, build with the following commands.

mkdir build; cd build
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
nmake

Note, other generators like Ninja and Visual Studio 16 2019 would also work.

mkdir build; cd build
cmake .. -G "Visual Studio 16 2019" -A "win32" -DCMAKE_BUILD_TYPE=Release
msbuild unicorn.sln -p:Plaform=Win32 -p:Configuration=Release

Cross build from Linux host to Windows, with Mingw

This cross-builds Unicorn2 from Linux host to Windows, using Mingw compiler.

  • Install required package.
$ sudo apt install mingw-w64-x86-64-dev
  • Build Unicorn and samples with the following commands.
$ mkdir build; cd build
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../mingw64-w64.cmake
$ make

Native build on Windows host, with MSYS2/Mingw

This builds Unicorn2 on Windows host, using MSYS2/Mingw compiler.

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
/mingw64/bin/cmake .. -G "MSYS Makefiles" -DCMAKE_C_OMPILER=/mingw64/bin/gcc -DCMAKE_MAKE_PROGRAM=/mingw64/bin/mingw32-make.exe -DCMAKE_AR=/mingw64/bin/ar

Cross build from Linux host to other arch

This cross-builds Unicorn2 from Linux host to other arch, using cross compiler.

  • 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. The compiler name differs according to your targets.
$ mkdir build; cd build
$ cmake .. -DCMAKE_C_COMPILER=gcc-arm-linux-gnueabihf
Clone this wiki locally