Je pense que le mieux c'est de mettre toutes les fonctions communes dans des fichiers séparés, sans aucun main() nul part.
Tu les écris en C, puis tu les compiles pour en faire une shared library (cf. la documentation de ton compilateur pour le(s) option(s) à utiliser).
Et dans le(s) .h correspondant(s), tu encadres tes fonctions par :
Code :
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* mettre ici toutes les declarations de
- fonctions communes, ecrites en C */
- #ifdef __cplusplus
- }
- #endif
|
Et tu auras là du code réutilisable à volonté, en C ou en C++.
Ensuite, tu crées deux sources différents, un .c pour compiler en C, et un .cpp pour compiler en C++.
Tu codes tout ce qu'il faut, avec main() et tout le bazar qui va bien, avec le #include qui pointe sur le(s) fichier(s) .h de ta shared lib.
A la compilation, tu inclues la bibliothèque.
Exemple avec gcc, en admettant que ta lib se nomme "libMaLib.so" :
gcc [options] -I/chemin/vers/mes/fichiers/include -L/chemin/vers/libMaLib.so -lMaLib source.c
Message édité par Elmoricq le 17-06-2005 à 09:33:05