Bonjour,
J'aimerais savoir pourquoi on parle de compilation de boost pour Visual, ou pour MinGW, etc.
La compilation est-elle différente de l'un à l'autre ?
Merci d'avance !
Bonjour,
J'aimerais savoir pourquoi on parle de compilation de boost pour Visual, ou pour MinGW, etc.
La compilation est-elle différente de l'un à l'autre ?
Merci d'avance !
Salut,
Une grosse partie des bibliothèques Boost ne nécessite pas de compilation car uniquement basée sur des fichiers d'en-têtes et n'est donc pas concernée.
L'autre partie doit être compilée afin de produire des bibliothèques binaires (.dll ou .lib sur windows). Or, les bibliothèque binaire C++ (.dll ou .lib) ne sont pas compatibles d'un compilateur à l'autre et doivent donc être produites selon le compilateur cible. D'où la nécessité de les compiler pour Visual, pour MinGW, etc..
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Ok, merci.
Et à quel niveau n'est-ce pas compatible (en gros) ?
Les gros points sont: le passage de paramètres, la gestion des exceptions, l'alignement choisis pour les types, est-ce que long double est l'extended double d'IEEE 754 ou bien un synonyme de double, la représentation du RTTI et des fonctions virtuelles, l'implémentation de la lib standard,...
Un point annexe mais le plus visible, c'est la décoration des noms (mangling). Visible parce qu'il cause des erreurs au link. Annexe parce que c'est fait exprès pour éviter que le link réussisse puis qu'on ait des problèmes sur les autres points.
Partager