_
~ DAMOLAB - XBNF Neurotranslator ~
"L'orgueil ne réussit jamais mieux que quand il se couvre de modestie." - Chevalier de Méré
XBNF #TAGS _./._ damolab _./._

Compilation du projet XBNF sous Windows XP, 10 et 11


| FR | par DAMO | | 27/02/2026 21h00 | (last update 28/02/2026 15h56) | Commentaires |
#XBNF #WINDOWS #BUILD
Comment compiler le projet XBNF avec la toolchain C++11 de GNU pour Windows
|


L'objectif de cet article est de compiler le projet XBNF sur les architectures Windows suivantes :
- PC Windows 10 ou 11 avec des microprocesseurs 64 bits type x86_64 Intel ou AMD
- PC Windows XP avec des microprocesseurs 32 bits type i686 Intel ou AMD.

La toolchain utilisé est GNU C++ 11, cela permet d'avoir du code portable, à quelques fonctions près,
le code C++ est quasiment le même entre Linux et Windows et ça c'est vraiment bien.

A noter que la construction du binaire xbnf est réalisée à chaque version sur les cibles indiquées ici, pour Linux se reférer à l'autre billet.

A noter que pour améliorer la portabilité, l'éditeur de lien inclu les bibliothèques standards directement dans le binaire xbnf,
cela est possible avec ces options de l'éditeur de lien :
-static-libgcc  -static-libstdc++

Grâce à cela, le binaire peut fonctionner sur des variantes plus anciennes ou plus récentes que la toolchain.
Ces options peuvent être désactivées afin de gagner un peu d'espace ou pour d'autres raisons.

Enfin, la commande finale est stripée (avec strip), cela permet de réduire par trois la taille de l'executable final.

1) pré-requis



1.1) récupération des sources


Depuis le projet XBNF sur sourceforge (liens 1.1 du bandeau juste à droite), onglet "GIT repository" puis "Download Snapshot".

Aller dans votre répertoire de travail et décompresser l'archive.

Vous pouvez aussi repartir du répo GIT :

git clone git://git.code.sf.net/p/neurotranslator/neurotranslator


Pour le moment, je suis seul maître à bord, si vous souhaitez participer, contacter-moi.

2) installation de la toolchain C++ GNU



2.2) installation de GCC sous Windows 10/11 (64 bits)


MSYS2 est une adaptation fiable pour les Windows rescents.

Suivre les instructions pour du chapitre Installer, ... pas de customisation à faire.

Puis lancer la console.

Pour lancer MSYS plus facilement, créer un raccourcis vers C:\msys64\ucrt64.exe


Vérifier le compilateur C++ :

# g++ -dumpversion
15.2.0

# g++ -dumpmachine
x86_64-w64-mingw32


Installer make :
 pacman -S make


Installer quelques paquets supplémentaires pour pouvoir lancer les tests:
# pacman -S ruby
# pacman -S diffutils


2.3) sous Windows XP (32 bits)


Avant 2014, j'installais les packages GNU sous CYGWIN une distribution Linux-like pour Windows,
cela necessitait de garder la DLL de cygwin pour mapper les appels-système, pas idéal ...

Actuellement, j'utilise la toolchain MinGW64, sur sourceforge, vous trouverez les build 32 bits archive de MinGW-W64.

Cette toolchain génère du code mieux optimisé pour Windows.

La dernière est la i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z, ça tourne très bien sur mes machines Intel ou AMD en WindowsXP.

Il suffit de dezipper l'archive et configurer le chemin (PATH) dans le Makefile_WinXP.bat pour pointer dessus.

3) compilation du projet XBNF



Pour compiler le projet, ouvrir une console (selon l'OS), et aller dans le répertoire des sources.

3.4) compilation avec GNU g++ de MSYS2 en 64 bits


Voir les différentes cibles du Makefile:
 make help


Ce placer dans le répertoire des sources et compiler le projet.

 make clean all

 make all



       
3.4.1) tests de bases


Les sources sont livrés avec des tests qui reflêtent l'état du projet,
à chaque nouvelle version des tests sont validés sur toutes les architectures sauf Windows XP,
en effet, il me manque des petites commandes et make, ruby, ...

Le résultat des tests est produit dans le sous-répertoire res_out/, il est conservé sous git,
de manière à suivre tout changement de comportement ou erreur à corriger et suivre dans git.

 make test


       
3.4.2) tests de performances


 make testperf


La fonctionnalité de cache (introduite en v1.12), permet d'accélérer le chargement d'une grammaire.

 make test-cache


       
3.4.3) installation


Pour l'installer dans l'arborescence MSYS2, vous pouvez faire :

 make install 


Ainsi, normalement, vous allez pouvoir l'exécuter dans une console
c:\msys64\usr\bin\xbnf


3.5) compilation avec MingW32 sous Windows XP en 32 bits


Pour XP, n'ayant pas toute les commandes à disposition pour un make standard, j'utilise un batch :

 Makefile_WinXP.bat 


Donc pas de lancement de tests ni installation, ...

Du coups, vous allez devoir gérer l'exécutable xbnf.exe pour pouvoir le lancer :
- soit depuis une console ou un batch en précisant le chemin complet du répertoire ou vous avez compilé XBNF
- soit ajouter le chemin (répertoire) dans la variable PATH pour executer juste en tapant xbnf
- soit copier le xbnf.exe dans un chemin connu (PATH)
- prendre en compte les droits que vous avez ou pas sur votre poste

4) vérification de la commande XBNF



 xbnf --version


Exemple de sortie:

       
4.5.4) Windows 10/11 (64 bits)


~ XBNF Neurotranslator ~ GNU GENERAL PUBLIC LICENSE v3 ~
~ Matthieu DAMEROSE ~ damo@cpan.org ~
~ https://sourceforge.net/projects/neurotranslator/ ~

Version : v1.14-dev
Build at : Feb 28 2026 13:02:43
OS: Windows 64 bits
o_arch_address_sz = 64
o_arch = x86_64-w64-mingw32
Compiler: g++.exe (Rev8, Built by MSYS2 project) 15.2.0


       
4.5.5) Windows XP (32 bits)



~ XBNF Neurotranslator ~ GNU GENERAL PUBLIC LICENSE v3 ~
~ Matthieu DAMEROSE ~ damo@cpan.org ~
~ https://sourceforge.net/projects/neurotranslator/ ~

Version : v1.14-dev
Build at : Feb 28 2026 12:50:15
OS: Windows 32 bits
o_arch_address_sz = 32
o_arch = i686-w64-mingw32
Compiler: g++ (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0


5) Allez plus loin...



Sur le site officiel de gcc, on trouve aussi les sources de versions rescentes mais
aussi bien plus anciennes.

Recompiler la chaine G++ peut être intérressant, en cross-compilation notamement.

L'image Docker w64devkit permet de builder une toolchain pour windows,
je n'ai pas testé, mais j'aimerais bien à l'occasion.

N'hésitez pas à poster vos remarques ou questions.

Bon build !


1) Ressources XBNF Neurotranslator



Documentation (FR)

1.1) XBNF Sources Sourceforge


Binaires et sources
Librarie XBNF

1.2) Images dockerHub


Executable et librairies
Sources et Toolchain C++ GNU (Linux 64 bits)

1.3) DamoLab


DamoLab@Sourceforge
DamoLab@DockerHub


Nom/surnom:
Message:


revenir sur l'article
#XBNF #WINDOWS #BUILD

Aucun commentaire.

dans
une
galaxy
lointaine
Charte du site damolab.zapto.org est motorisé par

"La force est une sorte de fluide crée par tout être vivant, une énergie qui nous entoure et nous pénètre, et qui maintient la galaxie en un tout unique."
- Obi-Wan à Luke Yoda