<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <style> .textbox { vertical-align: top; height: auto !important; font-family: Helvetica,sans-serif; font-size: 20px; font-weight: bold; margin: 10px; padding: 10px; background-color: white; width: auto; border-radius: 10px; } .texttohide { font-family: Helvetica,sans-serif; font-size: 14px; font-weight: normal; } </style> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title> <meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/> <meta name="keywords" content="encryption, security"/> <link href="styles.css" rel="stylesheet" type="text/css" /> </head> <body> <div> <a href="Documentation.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a> </div> <div id="menu"> <ul> <li><a href="Home.html">Home</a></li> <li><a href="/code/">Source Code</a></li> <li><a href="Downloads.html">Downloads</a></li> <li><a class="active" href="Documentation.html">Documentation</a></li> <li><a href="Donation.html">Donate</a></li> <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li> </ul> </div> <div> <p> <a href="Documentation.html">Documentation</a> <img src="arrow_right.gif" alt=">>" style="margin-top: 5px"> <a href="Technical%20Details.html">Technical Details</a> <img src="arrow_right.gif" alt=">>" style="margin-top: 5px"> <a href="CompilingGuidelines.html">Building VeraCrypt From Source</a> <img src="arrow_right.gif" alt=">>" style="margin-top: 5px"> <a href="CompilingGuidelineLinux.html">Linux Build Guide</a> </p></div> <div class="wikidoc"> This guide describes how to set up a Linux System to build VeraCrypt from source and how to perform compilation. <br> The procedure for a Ubuntu 22.04 LTS system is described here as an example, the procedure for other Linux systems is analogous. </div> <div class="wikidoc"> <br> <br> The following components are required for compiling VeraCrypt: <ol> <li>GNU Make</li> <li>GNU C/C++ Compiler</li> <li>YASM 1.3.0</li> <li>pkg-config</li> <li>wxWidgets 3.2 shared library and header files installed or wxWidgets 3.0 library source code </li> <li>FUSE library and header files</li> </ol> </div> <div class="wikidoc"> <p>Below are the detailed procedure steps:</p> <ul> <li><a href="#InstallationOfGNUMake">Installation of GNU Make</a></li> <li><a href="#InstallationOfGNUCompiler">Installation of GNU C/C++ Compiler</a></li> <li><a href="#InstallationOfYASM">Installation of YASM</a></li> <li><a href="#InstallationOfPKGConfig">Installation of pkg-config</a></li> <li><a href="#InstallationOfwxWidgets">Installation of wxWidgets 3.2</a></li> <li><a href="#InstallationOfFuse">Installation of libfuse</a></li> <li><a href="#DownloadVeraCrypt">Download VeraCrypt</a></li> <li><a href="#CompileVeraCrypt">Compile VeraCrypt</a></li> </ul> <p>They can also be performed by running the below list of commands in a terminal or by copying them to a script:</p> <code> sudo apt update <br> sudo apt install -y build-essential yasm pkg-config libgtk-3-dev <br> wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.0/wxWidgets-3.2.0.tar.bz2 <br> tar -xf wxWidgets-3.2.0.tar.bz2 <br> cd wxWidgets-3.2.0 <br> mkdir gtk-build <br> cd gtk-build <br> ../configure <br> make <br> sudo make install <br> sudo ldconfig <br> cd ../.. <br> rm -r wxWidgets-3.2.0 <br> rm wxWidgets-3.2.0.tar.bz2 <br> sudo apt install -y libfuse-dev git <br> git clone https://github.com/veracrypt/VeraCrypt.git cd ~/VeraCrypt/src <br> make </code> <p> </div> <div class="wikidoc"> <div class="textbox" id="InstallationOfGNUMake"> <a href="#InstallationOfGNUMake">Installation of GNU Make</a> <div class="texttohide"> <p> <ol> <li> Open a terminal </li> <li> Execute the following commands: <br> <code> sudo apt update <br> sudo apt install build-essential </code> </li> </ol> </p> </div> </div> <div class="textbox" id="InstallationOfGNUCompiler"> <a href="#InstallationOfGNUCompiler">Installation of GNU C/C++ Compiler</a> <div class="texttohide"> <p> If the build-essential were already installed in the step before, this step can be skipped. <ol> <li> Open a terminal </li> <li> Execute the following commands: <br> <code> sudo apt update <br> sudo apt install build-essential </code> </li> </ol> </p> </div> </div> <div class="textbox" id="InstallationOfYASM"> <a href="#InstallationOfYASM">Installation of YASM</a> <div class="texttohide"> <p> <ol> <li> Open a terminal </li> <li> Execute the following commands: <br> <code> sudo apt update <br> sudo apt install yasm </code> </li> </ol> </p> </div> </div> <div class="textbox" id="InstallationOfPKGConfig"> <a href="#InstallationOfPKGConfig">Installation of pkg-config</a> <div class="texttohide"> <p> <ol> <li> Open a terminal </li> <li> Execute the following commands: <br> <code> sudo apt update <br> sudo apt install pkg-config </code> </li> </ol> </p> </div> </div> <div class="textbox" id="InstallationOfwxWidgets"> <a href="#InstallationOfwxWidgets">Installation of wxWidgets 3.2</a> <div class="texttohide"> <p> <ol> <li> Open a terminal </li> <li> Execute the following commands: <br> <code> sudo apt install libgtk-3-dev <br> wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.0/wxWidgets-3.2.0.tar.bz2 <br> tar -xf wxWidgets-3.2.0.tar.bz2 <br> cd wxWidgets-3.2.0 <br> mkdir gtk-build <br> cd gtk-build <br> ../configure <br> make <br> sudo make install <br> sudo ldconfig <br> cd ../.. <br> rm -r wxWidgets-3.2.0 <br> </code> </li> </ol> </p> </div> </div> <div class="textbox" id="InstallationOfFuse"> <a href="#InstallationOfFuse">Installation of libfuse</a> <div class="texttohide"> <p> <ol> <li> Open a terminal </li> <li> Execute the following commands: <br> <code> sudo apt update <br> sudo apt install libfuse-dev </code> </li> </ol> </p> </div> </div> <div class="textbox" id="DownloadVeraCrypt"> <a href="#DownloadVeraCrypt">Download VeraCrypt</a> <div class="texttohide"> <p> <ol> <li> Open a terminal </li> <li> Execute the following commands: <br> <code> sudo apt update <br> sudo apt install git <br> git clone https://github.com/veracrypt/VeraCrypt.git </code> </li> </ol> </p> </div> </div> <div class="textbox" id="CompileVeraCrypt"> <a href="#CompileVeraCrypt">Compile VeraCrypt</a> <div class="texttohide"> <p> Remarks: <br> <ul> <li> If you have not installed wxWidgets like described here, you may have to modify the make statement to reference to the right file: <br> <code>make WXSTATIC=1</code> </li> <li> By default, a universal executable supporting both graphical and text user interface (through the switch --text) is built. <br> On Linux, a console-only executable, which requires no GUI library, can be built using the 'NOGUI' parameter: <br> <code> make NOGUI=1 WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets wxbuild <br> make NOGUI=1 WXSTATIC=1 </code> </li> </ul> Steps: <ol> <li> Open a terminal </li> <li> Execute the following commands: <br> <code> cd ~/VeraCrypt/src <br> make </code> </li> <li> If successful, the VeraCrypt executable should be located in the directory 'Main'. </li> </ol> </p> </div> </div> </div> </body></html>