---
title: "Compilation - Développer des programmes - Aide MetaEditor"
description: "La compilation signifie la conversion du code source d'un programme MQL4/MQL5 en langage machine. Le résultat est un fichier... - Compilation - Développer des programmes - Aide MetaEditor"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/fr/metaeditor/help/development/compile"
---

[Aide MetaEditor](https://www.metatrader5.com/fr/metaeditor/help) → [Développer des programmes](https://www.metatrader5.com/fr/metaeditor/help/development) → Compilation

# Compilation

La compilation signifie la conversion du code source d'un programme MQL4/MQL5 en langage machine. Le résultat est un fichier exécutable (*EX4 or *.EX5) qui peut être lancé dans une plateforme de trading.

La compilation consiste en plusieurs étapes :

- Analyse lexicale
- Analyse syntaxique
- Analyse sémantique
- Génération de code
- Optimisation du code

> N'importe quel fichier (*.MQ4, *.MQ5 or *.MQH) peut être compilé, mais un fichier exécutable (*.EX4 or *.EX5) ne peut être obtenu qu'après la compilation du [principal](https://www.metatrader5.com/fr/metaeditor/help/structure#main_file) fichier MQ4/MQ5 ou [projet](https://www.metatrader5.com/fr/metaeditor/help/mql5storage/projects).Le fichier exécutable est créé dans son propre format, cachant l'algorithme original du programme.Les fichiers EX4/EX5 exécutables compilés peuvent être distribués dans les fichiers source MQ4, MQ5 et MQH. Il n'est pas possible de déboguer sans eux. Il n'est pas recommandé non plus de distribuer les fichiers exécutables EX4/EX5 obtenus pendant le déboguage.

Pour obtenir un fichier exécutable, ouvrez le [principal](https://www.metatrader5.com/fr/metaeditor/help/structure#main_file) fichier source ou projet via le [Navigateur](https://www.metatrader5.com/fr/metaeditor/help/workspace/navigator) et cliquez sur ![Compiler](https://www.metatrader5.com/i/help/metaeditor/en/compile_icon.png) Compiler dans le menu [Fichier](https://www.metatrader5.com/fr/metaeditor/help/main_menu/main_menu_file#compile) ou F7. Le résultat de la compilation est affiché dans l'onglet [Erreurs](https://www.metatrader5.com/fr/metaeditor/help/workspace/toolbox#errors) de la fenêtre Boîte à Outils. Si la сompilation est passée sans erreur, vous pouvez exécuter le programme obtenu dans la plateforme de trading.

![Compilation du programme et affichage des résultats dans l'onglet Erreurs](https://www.metatrader5.com/i/help/metaeditor/en/compilation.png)

S'il y a des erreurs ou des avertissements (warnings), ils sont affichés dans l'onglet Erreurs.

Les erreurs de compilation sont marquées avec ![Erreur](https://www.metatrader5.com/i/help/metaeditor/en/error_icon.png) à la fois dans l'onglet Erreurs et dans le bloc de code correspondant. Aucun fichier exécutable (*EX4 or *.EX5) n'est créé dans ce cas. Pour vous rendre sur la ligne de l'erreur, double-cliquez sur l'erreur ou cliquez sur la commande ![Aller à la Ligne](https://www.metatrader5.com/i/help/metaeditor/en/go_to_line_icon.png)Aller à la Ligne du menu contextuel. La ligne et la colonne où l'erreur est détectée sont affichées dans les colonnes correspondantes.

Les avertissements marqués avec l'icone ![Avertissement](https://www.metatrader5.com/i/help/metaeditor/en/warning_icon.png) indiquent l'emplacement d'erreurs potentielles. Ce sont des blocs de code source pouvant être mal interprétés (par exemple un changement de type implicite). Vous pouvez vous rendre à l'endroit correspondant exactement de la même façon qu'en cas d'erreur.

![Information](https://www.metatrader5.com/i/help/metaeditor/en/info_icon.png)Les icones représentent divers messages, par exemple, les messages à propos des fichiers d'include auxquels le programme accéde pendant la compilation.

## Mode de compilation [#](#mode)

L'éditeur propose deux modes de compilation : avec optimisation maximale du code et sans optimisation.

Le temps nécessaire pour créer un fichier exécutable est considérablement réduit lorsque l'optimisation est désactivée. Utilisez ce mode pendant la phase de développement actif, lorsque vous devez vérifier rapidement le code écrit. Ensuite, lors de la compilation finale du programme, activez le mode d'optimisation maximale pour obtenir les meilleures performances.

Pour passer d'un mode à l'autre, utilisez le menu "Build" ou le menu de commandes de compilation de la barre d'outils :

![Contrôler le mode de compilation](https://www.metatrader5.com/i/help/metaeditor/en/compilation_mode.png)

Le paramètre "[Optimisation maximale](https://www.metatrader5.com/fr/metaeditor/help/mql5storage/projects#properties)" dans les paramètres du projet remplit la même fonction.

> La description complète des erreurs de compilation sont fournies dans l'aide du langage MQL4/MQL5.En cas d'avertissements, un fichier exécutable est quand même généré. Mais les avertissements ne devraient pas être ignorés puisqu'ils indiquent des erreurs potentielles du code.Pendant la compilation, un fichier exécutable (*.EX4 ou *.EX5) est généré dans le même répertoire que le [principal fichier source](https://www.metatrader5.com/fr/metaeditor/help/structure#main_file) du programme (*.MQ4 ou *.MQ5) ou du [projet](https://www.metatrader5.com/fr/metaeditor/help/mql5storage/projects).metaeditor.exe peut être utilisé comme [compilateur externe dans les IDE tiers](https://www.metatrader5.com/fr/metaeditor/help/beginning/integration_ide).

## Compilation pour des processeurs avec des architectures différentes [#](#architecture)

Les processeurs modernes fournissent un ensemble d'instructions avancées qui accélèrent considérablement les calculs mathématiques : [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions), [AVX2](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions), [AVX512](https://en.wikipedia.org/wiki/AVX-512)et [FMA3](https://en.wikipedia.org/wiki/FMA_instruction_set). Ces instructions sont prises en charge dans le compilateur MQL5 pour permettre la génération de codes plus efficaces et plus rapides. L'utilisation de ces instructions est facultative :

- Si vous créez une application pour vous-même et que vous êtes sûr qu'elle fonctionnera sur un processeur prenant en charge l'architecture souhaitée, vous pouvez la compiler à l'aide d'instructions avancées. Cela fournira une performance accrue.
- Si vous créez un programme destiné à un usage public ou à la vente, compilez-le avec les instructions de base définies en mode X64 Regular. Cela garantira une compatibilité maximale de lapplication avec le matériel utilisateur.

Pour savoir quelles instructions sont prises en charge sur votre processeur, utilisez l'[Utilitaire gratuit CPU-Z](https://www.cpuid.com/softwares/cpu-z.html). Après l'installation, ouvrez la section 'CPU' et vérifiez le champ 'Instructions' :

![Vérifiez quelles instructions votre processeur prend en charge à l'aide de CPU-Z](https://www.metatrader5.com/i/help/metaeditor/en/cpu_z.png)

Pour sélectionner une architecture de processeur, utilisez le menu de compilation. Cliquez ensuite sur « Compiler ». Vous pouvez également spécifier l'architecture dans les [Paramètres MetaEditor](https://www.metatrader5.com/fr/metaeditor/help/beginning/settings#compiler) et dans les [Paramètres de projet distincts](https://www.metatrader5.com/fr/metaeditor/help/mql5storage/projects#properties).

![Sélectionnez l'architecture du processeur pour laquelle le programme sera compilé](https://www.metatrader5.com/i/help/metaeditor/en/compilation_architecture.png)

Si l'application est compilée pour une architecture qui n'est pas supportée par le processeur de l'utilisateur, alors une tentative de son exécution entraînera l'impression du message suivant dans le journal de la plateforme :

```
votre architecture CPU ne permet pas d'exécuter le fichier '<file-name>.ex5' : AVX512 requis, vous disposez uniquement d'AVX2
```

Restrictions :

- Les programmes compilés pour les processeurs avec AVX512 ne sont pas encore pris en charge dans le [Réseau MQL5 Cloud Network](https://www.metatrader5.com/fr/terminal/help/algotrading/strategy_optimization#cloud) et dans le [VPS intégré](https://www.metatrader5.com/fr/terminal/help/virtual_hosting).
- Seuls les fichiers compilés sous X64 Regular peuvent être téléchargés sur le [Market](https://www.mql5.com/fr/articles/385). Ceci est nécessaire pour garantir une compatibilité maximale des applications avec le matériel utilisateur.

## In this section

- [Gestion intelligente](https://www.metatrader5.com/fr/metaeditor/help/development/intelligent_management)
- [Rechercher et remplacer](https://www.metatrader5.com/fr/metaeditor/help/development/source_code_find)
- [Styler](https://www.metatrader5.com/fr/metaeditor/help/development/styler)
- Compilation
- [MQL5 Cloud Protector : Protection avancée pour les programmes](https://www.metatrader5.com/fr/metaeditor/help/development/mql5_cloud_protector)
- [Déboguage du code](https://www.metatrader5.com/fr/metaeditor/help/development/debug)
- [Profilage du code](https://www.metatrader5.com/fr/metaeditor/help/development/profiling)
- [Assistant de codage AI Assistant](https://www.metatrader5.com/fr/metaeditor/help/development/ai_assistant)
- [Générer du code à inclure](https://www.metatrader5.com/fr/metaeditor/help/development/generate_mqh)
- [Utiliser des DLL C++ (intégration avec MS Visual Studio)](https://www.metatrader5.com/fr/metaeditor/help/development/c_dll)
- [Travailler avec Python](https://www.metatrader5.com/fr/metaeditor/help/development/python)
- [Support OpenCL](https://www.metatrader5.com/fr/metaeditor/help/development/opencl)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/fr/metaeditor/help", "name": "Aide MetaEditor"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/fr/metaeditor/help/development", "name": "Développer des programmes"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/fr/metaeditor/help/development/compile", "name": "Compilation"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: Compilation", "acceptedAnswer": { "@type": "Answer", "text": "La compilation signifie la conversion du code source d&#39;un programme MQL4/MQL5 en langage machine. Le résultat est un fichier exé..." } }] }
```
