2.1. Get the Source Code


If you do not plan to modify the AFF3CT source code and you want to use the simulator/library as is, you can download one of the latest builds from the download page of the AFF3CT website and skip this section.

This project uses Git as the version-control system to manage the source code. The AFF3CT repository is hosted on GitHub. To get the source code, first install the Git software and secondly clone the AFF3CT repository locally.

2.1.1. Git Installation Windows/macOS

Download Git from the official web page and launch the install. Just press the Next button until the installation is over.


On Windows, Git comes with the Git Bash terminal which is, to our mind, better suitable that the traditional Windows Console. We encourage you to use Git Bash instead of the Windows Command Prompt for the following steps.



It is recommended to add Git to your system PATH during the installation.



On Windows, during the installation you may want to check the Linux symbolic links support.

../../../_images/git_symlink.png Linux

Install Git from the package manager:

sudo apt install git


On CentOS-like systems you have to replace apt by yum.

2.1.2. Clone AFF3CT from GitHub

Get the source code from GitHub:

git clone --recursive https://github.com/aff3ct/aff3ct.git
cd aff3ct

The AFF3CT repository contains some dependencies to other repositories. Technically those dependencies are managed by the Git submodule feature. By default the submodules are not downloaded during the git clone process this is why the --recursive option has been added.


On the AFF3CT repository you may want to directly download the source code without making a git clone. This will get you an archive without the AFF3CT dependencies and the build process will fail. Do not directly download AFF3CT from GitHub and please make a clone!

If you want to manually get or update the AFF3CT submodules, you can use the following command:

git submodule update --init --recursive


When git pull is used to get the last commits from the repository, the submodules are not automatically updated and it is required to call the previous git submodule command.