_
~ DAMOLAB - XBNF Neurotranslator ~
Avant d'être fort comme un chêne, il faut être con comme un gland !
XBNF #TAGS _./._ damolab _./._

Compilation du projet XBNF neurotranslator sous Linux


| FR | par DAMO | | 27/02/2026 21h00 | (last update 27/02/2026 18h26) | Commentaires |
#XBNF #LINUX #BUILD
Comment compiler le projet XBNF avec la toolchain C++11 de GNU sous Linux
|


L'objectif de cet article est de compiler le projet XBNF sur les architectures Linux suivantes :
- PC Linux avec des microprocesseurs 64 bits type x86_64 Intel ou AMD
- PC Linux avec des microprocesseurs 32 bits type i686 Intel ou AMD
- Raspberry PI (testé sur model II) avec un microprocesseur ARM de 32 bits
- j'utilise des distributions de type Debian

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 Windows se reférer à l'autre billet.

En Linux, je met aussi à disposition deux images, elles contiennent, l'une, clef en main, les sources et la toolchain C++ 11 ;
l'autre le binaire et des exemples pratique de grammaires.

Précédement dans ce billet, j'explique comment mettre en oeuvre et conserver plusieurs toolchains C++ en parallèle dans un loop filesystem sous Linux.

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 Linux Debian


# apt-get update
# apt-get -y install coreutils initscripts unzip make g++ perl diffutils ruby procps


Pour verifier les versions lié à votre architecture :
# uname -a
# g++ -dumpmachine
# g++ --version
# make --version


3) compilation du projet XBNF



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

3.3) compilation avec GNU g++


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.3.1) tests de bases


Les sources sont livrés avec des tests qui reflêtent l'état du projet,
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.3.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.3.3) installation


L'installation consiste à simplement copier le binaire.

# make install


4) vérification de la commande XBNF



# xbnf --version


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

Version : v1.13-dev
Build at : Nov 15 2025 19:27:17
OS:  Linux
Architecture: 64 bits
Compiler: g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0


Visualiser en mode "Matrix", c'est amusant et très pratique pour voir ou en est l'analyse:
# xbnf -mf -i xbnf.xbnf -o - xbnf.xbnf


5) Allez plus loin...



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

Recompiler une chaine peut être intérressant, en cross-compilation notamment.

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

Bon build (sous Linux de GNU) !


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 #LINUX #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