Dans gcc
et clang
, les répertoires include peuvent être passés au compilateur en utilisant -I
ou -isystem
.build boost: Comment marquer un include comme un "système" include
La différence est, isystem
chemins ne sont fouillés quand crochets <>
sont utilisés dans une directive #include
, plutôt que des citations ""
. En outre, certains avertissements sont supprimés lorsqu'ils apparaissent dans les en-têtes du système (puisque vous ne pouvez probablement pas contourner les problèmes dans les en-têtes du système). (Il peut y avoir d'autres différences mineures pour autant que je sache.)
Tous les compilateurs ne supportent pas ce concept, c'est un problème d'implémentation qui ne fait pas partie de la norme.
cmake
prend en charge cette fonctionnalité spécifiquement, et va "faire la bonne chose" sur les compilateurs qui le prennent en charge.
scons
scons
historiquement ne l'a pas pris en charge, mais il existe des façons de contourner ce problème, et il a également intégré some support depuis assez récemment.
Existe-t-il une fonctionnalité équivalente dans boost.build
, aussi connu sous le nom de bjam
, b2
? Dans la documentation et les exemples, les répertoires include sont spécifiés en utilisant <include>path/to/files
et transmis en tant qu'exigences des cibles lib
ou exe
. Mais je n'ai trouvé aucun <system_include>
ou une caractéristique similaire.
S'il n'existe pas, est-il possible de contourner ce problème? Certains projets ne seront pas construits sans avertissement sur gcc
et clang
à moins que ces indicateurs ne soient utilisés correctement.