<!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>