2009-07-16 9 views
2

J'ai une base de code agréable conforme aux normes propres que je peux compiler avec « erreurs -pedantic--ansi -Wextra » de GCC, etc.Quelle est la meilleure façon d'isoler le code C «sale» du code propre lors de la compilation?

Mais maintenant je dois utiliser une bibliothèque source avec les en-têtes associés qui est décidément pas propre code.

Quelle est la meilleure façon d'isoler ce code de la mienne afin que je puisse encore compiler le mien strictement, mais peut permettre la clémence avec le code tiers?

Répondre

4

Il n'y a pas de bon moyen.

Vous pouvez réécrire les en-têtes de la bibliothèque source, en prenant soin de conserver tous les types d'appel et les types de retour. Beaucoup de travail.

Vous pouviez mettre en avant la bibliothèque avec une bibliothèque de votre choix, qui était juste une connexion directe. Beaucoup plus de travail.

Vous pouvez isoler l'utilisation de la bibliothèque pour quelques-uns de vos modules. Ensuite, compilez ces modules avec des options relaxantes. La quantité de travail dépend de la manière dont votre application est écrite. Cela pourrait être le meilleur moyen.

3

Structurez votre environnement de construction de sorte que vous ayez une dépendance entre votre bon code et le mauvais code de la bibliothèque. En outre, assurez-vous que la dépendance est résolue en créant le code de la bibliothèque dans une compilation séparée avec différentes options. Cela vous permettra de construire les deux séparément, tout en exprimant la dépendance, ce qui permettra de construire l'ensemble du projet avec une seule commande. Je suis abstrait, puisque je ne connais pas votre environnement de construction. En supposant que vous utilisez des fichiers makefiles, vous pouvez jouer un peu avec les cibles et y parvenir.

0

Compilez la bibliothèque de manière statique avant votre projet. Faites votre projet se référer aux en-têtes de la bibliothèque et lien vers lui.

Si les en-têtes de la bibliothèque sont vraiment horribles, écrivez juste quelques enveloppes simples autour d'eux.

Questions connexes