Build from sources

Install GCC and CMake

The main compilation directives are specified using


Both gcc and cmake commands are already installed by default.

Mac OS

Install Xcode and command line tools

  1. Install the latest release of Xcode.

  2. Install the command line tools by executing from the terminal

    xcode-select --install

Install CMake via Homebrew

  1. Install Homebrew and update its packages to the latest version.

  2. Install cmake by executing

    brew install cmake


  1. Install TDM-GCC 32bit or 64bit depending on your platform.

  2. Install the latest binaries of CMake.

Build the binaries

Run the following commands from the terminal

  1. You first need to get the sources from one of these two options:

    • Download the compressed source file from the latest OSQP release at GitHub.

    • Clone the repository

      git clone
  2. Create build directory and change directory

    cd osqp
    mkdir build
    cd build
  3. Create Makefiles

    • In Linux and Mac OS run

      cmake -G "Unix Makefiles" ..
    • In Windows run

      cmake -G "MinGW Makefiles" ..
  4. Compile OSQP

    cmake --build .

Thanks to CMake, it is possible to create projects for a wide variety of IDEs; see here for more details. For example, to create a project for Visual Studio 14 2015, it is just necessary to run

cmake -G "Visual Studio 14 2015" ..

The compilation will generate the demo osqp_demo and the unittests osqp_tester executables. In the case of Unix or MinGW Makefiles option they are located in the build/out/ directory. Run them to check that the compilation was correct.

Once the sources are built, the generated static build/out/libosqp.a and shared build/out/libosqp.ext libraries can be used to interface any C/C++ software to OSQP (see C installation).

Install the binaries

To install the generated libraries and headers to a system-wide location compatible with GNU standards it is just necessary to run

cmake --build . --target install

This code installs the libraries in libdir and the headers into includedir/osqp. For mode details see the defaults folders on the GNU standards website. To change the installation prefix, in the “Create Makefiles” step above, you need to specify the destination folder as cmake -DCMAKE_INSTALL_PREFIX:PATH=myfolder ...


This step requires write permissions in the destination folders. You might be able to gain access using the sudo command.

We provided also an uninstall routine to remove the copied files by running

cmake --build . --target uninstall

Note that this corresponds to running make install and make uninstall on unix machines.