Bonjour à tous,
Je reprends un projet et j'ai trouvé quelque chose de dégueulasse !
Il y a une librairie statique qui est crée (.lib). D'après l'utilisation classique d'une librairie statique, on devrait linker sur cette librairie statique ainsi que inclure son .h.
Or dans le projet que j'ai repris, on link bien sur la librairie static (.lib) mais le .h inclus n'est pas le même que celui avec lequel la librairie en elle même a été compilée.
Exemple de différence :
Certaines définitions ont été mises en commentaire (enum b et struct c de l'exemple). A la compilation de mon projet je n'ai pas d'erreur. Par contre l'application a un comportement bizarre, comme des problèmes d'alignements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Vrai ".h" : Mauvais ".h": struct a struct a enum b struct c struct d struct d fonction e fonction e
Je vais refaire l’inclusion de la lib de manière propre car je ne pense pas qu'il soit normal de travailler comme ça.
Je voulais juste connaitre les risques de cette absurdité, pouvez-vous m'aider ? Risque-t-on d'avoir des problèmes d’alignements avec ça ?
Merci !
Bonne journée
Partager