Les lignes de commandes ci-dessous n'ont été testées qu'avec les distributions binaires OCaml-4.14.0 proposées sur ce site (mais on devrait pouvoir aussi utiliser ocaml-4.13.1 ou ocaml-5.0.0 : remplacer partout 4.14.0 par 4.13.1 ou 5.0.0 ci-dessous).
On suppose que le répertoire d'OCaml, avec au premier niveau 'bin/' et 'lib/', est
'/opt/amd64/ocaml-4.14.0' dans le cas d'un MAC ou LINUX à processeur intel
'/opt/arm64/ocaml-4.14.0' dans le cas d'un MAC à processeur M1
et que c'est 'C:\ocamlmgw64' dans le cas de Windows 10 ou 11 avec utilisation de MSYS2-MINGW64
et 'C:\ocamlms64' dans le cas de Windows 10 ou 11 avec utilisation des outils en ligne de commande Microsoft.

On suppose aussi que les outils de développement en ligne de commande sont installés et au moins aussi récents que ceux utilisés pour compiler OCaml.
Dans le cas d'un MAC on suppose XQuartz installé (https://www.xquartz.org).
Dans le cas de LINUX le paquet de développement x11 doit être installé (paquet libx11-dev sous debian ou ubuntu, paquet libX11-devel sous Fedora)

On obtient dans le présent répertoire l'exécutable en ligne de commande nommé cube22_opt qu'on lance en entrant
./cube22_opt
dans les cas MAC, LINUX, ou Windows 10 ou 11 avec MSYS2,
cube22_opt
dans le cas de Windows 10 ou 11 avec outils en ligne de commande de Microsoft (on peut ausi lancer cube_22_opt par double-clic sur son icône) 


Placer la ligne de commande sur le répertoire contenant ce fichier et le fichier cube22_opt.ml et entrer les lignes de commandes ci-dessous suivant le cas



1. MAC OU LINUX:

1. a) MAC M1 ou LINUX arm64 :

export PATH=/opt/arm64/ocaml-4.14.0/bin:$PATH
ocamlopt -o cube22_opt -I /opt/arm64/ocaml-4.14.0/lib/ocaml graphics.cmxa /opt/arm64/ocaml-4.14.0/lib/ocaml/graphics.a cube22_opt.ml


1. b) MAC ou LINUX intel :

export PATH=/opt/amd64/ocaml-4.14.0/bin:$PATH
ocamlopt -o cube22_opt -I /opt/amd64/ocaml-4.14.0/lib/ocaml graphics.cmxa /opt/amd64/ocaml-4.14.0/lib/ocaml/graphics.a cube22_opt.ml

IMPORTANT : si sous LINUX ça ne marche pas et qu'un message d'erreur provenant de l'éditeur de liens ld comporte le terme PIE (Position Independent Executable) essayer la commande complétée suivante

ocamlopt -o cube22_opt -I /opt/amd64/ocaml-4.14.0/lib/ocaml graphics.cmxa /opt/amd64/ocaml-4.14.0/lib/ocaml/graphics.a cube22_opt.ml -ccopt -no-pie



2. WINDOWS 10 (intel)

2. a) avec invite de commandes MSYS2-MINGW64 et les outils de développement installés (gcc, ld, ...)

export PATH=/c/ocamlmgw64/bin:$PATH  
ocamlopt.exe -o cube22_opt.exe graphics.cmxa graphics.a cube22_opt.ml -ccopt '-L/mingw64/lib -lkernel32 -L/mingw64/lib/gcc/x86_64-w64-mingw32/x.y.z -lgcc'

(où x.y.z est la version de gcc apparaissant dans le résultat de la commande 'gcc -v' , par exemple x.y.z = 12.2.0)


2. b1) avec invite de commande Windows basique et outils en ligne de commande de Visual Studio community 2022 :

call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
set PATH=C:\ocamlms64\bin;%PATH%
ocamlopt.exe -o cube22_opt.exe graphics.cmxa graphics.lib cube22_opt.ml


2. b2) avec invite de commande Windows basique et outils en ligne de commande de Visual Studio community xxxx avec xxxx = 2017 ou 2019 :

call "C:\Program Files (x86)\Microsoft Visual Studio\xxxx\Community\VC\Auxiliary\Build\vcvars64.bat"
set PATH=C:\ocamlms64\bin;%PATH%
ocamlopt.exe -o cube22_opt.exe graphics.cmxa graphics.lib cube22_opt.ml


2. b3) avec invite de commande Windows basique et outils en ligne de commande de Microsoft Visual Studio 2015 express (vc 14.0) :

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
set PATH=C:\ocamlms64\bin;%PATH%
ocamlopt.exe -o cube22_opt.exe graphics.cmxa graphics.lib cube22_opt.ml



3. WINDOWS 11 (intel ou émulation intel sur arm64)

3. a) avec invite de commandes MSYS2-MINGW64 et les outils de développement installés (gcc, ld, ...)

export PATH=/c/ocamlmgw64/bin:$PATH  
ocamlopt.exe -o cube22_opt.exe graphics.cmxa graphics.a cube22_opt.ml -ccopt '-L/mingw64/lib -lkernel32 -L/mingw64/lib/gcc/x86_64-w64-mingw32/x.y.z -lgcc'

(où x.y.z est la version de gcc apparaissant dans le résultat de la commande 'gcc -v' , par exemple x.y.z = 12.2.0)


3. b) avec invite de commande Windows basique et outils en ligne de commande de Visual Studio community 2022 (on se limite ici au dernier windows kit 10.0.19041 de Windows 10) :

call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 10.0.19041.0
set PATH=C:\ocamlms64\bin;%PATH%
ocamlopt.exe -o cube22_opt.exe graphics.cmxa graphics.lib cube22_opt.ml
