Build multiple OCaml executables in one Dune Project

Play this article

Create a dune project

Follow these steps to create a new dune project if you don't already have one.

  • First, initiate the project structure.

      dune init project foo
  • It will create a project structure like this

  • The bin folder contains the source file for the main executable

  • the bin/dune file has the build instruction for the executable, it'll look something like this.

       (public_name foo)
       (name main)
       (libraries foo))

Adding Support to build multiple executables

  • Let's see how to add support to build another executable called bar, which we'll write in the file called

  • First, create a file called in the bin directory.

  • Then you can update the bin/dune file support multiple executables like below.

       (public_names foo bar)
       (name main bar)
       (libraries foo))

Build and run the different executable

You can use the following commands to run the different executables.

dune exec ./bin/main.exe
dune exec ./bin/bar.exe

To build you can run following

dune build ./bin/main.exe
dune build ./bin/bar.exe

To run the built executables