This guide explains how to install OR-Tools from source, with support for Java, on Windows. Unless you plan to modify the source code or use a third-party solver with OR-Tools, we recommend the binary installation.
Although these instructions might also work on other Windows variants, we have only tested them on machines meeting the following requirements:
- Windows 10 64-bit (x86_64) with
- Microsoft Visual Studio 2022 or Visual Studio Community 2022
- Microsoft Visual Studio 2019 or Visual Studio Community 2019
The following sections describe the prerequisites for installing OR-Tools from source.
To build and run OR-Tools on Windows, you must have Visual Studio 2019 or later installed on your computer with the C++ toolset for Visual Studio. You can find more details here.
To build OR-Tools programs from the command line you must use a x64 Native Tools Command Prompt (not the Developer Command Prompt). You can find more details here.
Git, which can be downloaded from https://git-scm.com/.
CMake (>= 3.5), which can be downloaded from https://www.cmake.org/download. When installing CMake, select the option for a command-line accessible cmake.
You must also have a Java JDK 64 bit, version 8.0 or later installed. You can find more details here.
You must also have a Maven 64 bit installed. You can find more details here.
Download the source code
There are two distinct branches of the OR-Tools source code on GitHub: stable and master. The stable branch has been thoroughly tested and should work flawlessly on all supported platforms. The master branch is where the latest updates and improvements have been applied; it's more current, but less stable.
Download the stable source code
You can get the stable source code for OR-Tools in either of the following ways:
- Clone the stable branch by entering
git clone https://github.com/google/or-tools
- Download the latest release in a compressed file, by clicking the Clone or download button in GitHub.
Download the master source code
To retrieve the source code from the master branch, enter
git clone -b master https://github.com/google/or-tools
Download previous releases
You can get the source code for previous releases in either of the following ways:
- Download a previous release from the GitHub release page.
- Assuming you have already created a local repository (by
git clone), you can check out a specific release using a Git tag. For example, to work with the v9.3 release instead of the master branch, enter the following commands in your local repo:
git fetch --all --tags --prune
git checkout tags/v7.5 -b v7.5
Build third parties
Before building OR-Tools, you'll need to build the required third party software.
Open a terminal and navigate to the directory where you extracted the files. Then enter:
Since v7.8, SCIP is now integrated so you won't have to install it manually.
Gurobi is now pre-integrated. When needed, at runtime, OR-Tools will search for the Gurobi shared
library in the default install path of the Gurobi installers on MAC OS X and Windows, or by using
GUROBI_HOME environment variable.
Using an optional third-party MIP solver
You can also use OR-Tools with any of the following optional third-party MIP solvers whose support is disabled by default:
To configure OR-Tools to use one of these solvers, do the following steps:
- Install the optional solver following the vendor instruction.
Makefile.localand add the path to the directory where you have installed the solver. For example, for CPLEX you would add this:
Build the source code
To build the source code, open a terminal and navigate to the directory where you extracted the files. Then enter the following command to compile OR-Tools:
Test the source code
You can check that everything is running correctly by entering:
This runs a selection of examples for OR-Tools. If all the examples run successfully, you are ready to get started with OR-Tools.
Cleaning the build files
If you need to re-install OR-Tools, the command:
will remove all compiled dependencies and
Makefile.local. This can be useful
for resetting to a clean state.
Then re-enter the commands