Blog : Avertissements OpenFOAM® avec les compilateurs récents
Les versions récentes des compilateurs ajoutent de nouveaux diagnostics à
l’option -Wall, ce qui peut entraîner l’apparition d’avertissements (warnings)
inattendus lors de la compilation :
...
DiagonalMatrix.H:82:38: attention: template-id n'est pas permis pour un constructeur en C++20 [-Wtemplate-id-cdtor]
82 | explicit DiagonalMatrix<Type>(const label n);
...
Pour éviter ce comportement, il est possible d’ajouter des drapeaux de
suppression d’avertissements dans le fichier Make/options. Cependant, cela peut
s’avérer délicat si vous compilez le projet avec des compilateurs plus anciens,
car ces derniers généreront des alertes concernant des options inconnues.
La variable d’environnement FOAM_EXTRA_CXXFLAGS offre une solution plus
élégante. Par exemple, sur openSUSE Leap 16 avec GCC 15.1.1, l’ajout de cette
ligne dans votre fichier ~/.OpenFOAM/prefs.sh permet de supprimer les
avertissements non pertinents :
export FOAM_EXTRA_CXXFLAGS="-Wno-template-id-cdtor -Wno-dangling-reference -Wno-overloaded-virtual"