mercredi 11 mars 2015

Clang - Prémices

Je me suis mis à compiler une grosse solution C++ sous clang, le compilateur C/C++ du projet llvm, avec pour but principal de trouver des erreurs potentielles dans le code que gcc aurait laissé passer. Eh beh, c'est sport!

La partie qui m'a posé souci a été de pointer clang vers la bonne libstdc++, car mon setup était un peu bizarre. Le compilo de base sur la machine était trop vieux, et j'avais donc un g++ récent dans un répertoire non standard, que clang ne trouvait pas.

J'ai d'abord essayé d'utiliser la libc++ développée au sein du projet llvm, et me suis retrouvé avec des crash cyclopéens, potentiellement à cause de fonctionnalités manquantes dans la bibliothèque. Finalement, en jouant avec l'option "--with-gcc-toolchain", j'ai réussi à le faire pointer vers ma libstdc++ récente, et tout s'est beaucoup mieux passé.

La bonne nouvelle est qu'il n'y a presque rien à changer en termes d'options de compilation, c'est pareil que gcc. L'autre bonne nouvelle est qu'en effet, les warnings levés par clang sont tout à fait intéressants, et trouvent de vrais bugs, dont je vous parlerait dans un prochain post!

Aucun commentaire: