Questions à propos des DLLs

Questions à propos des DLLs - C++ - Programmation

Marsh Posté le 06-10-2012 à 23:26:30    


Salut les gens,
 
J'aurais une question pour ceux qui maîtrisent un peu les bibliothèques. Je suis dans le cas où je dois compiler des DLLs mais j'ai deux DLLs qui s'invoquent l'une l'autre. Forcément, ça pose problème.
Ma première question est la suivante, sans passer par des .def et sans faire de compilations successives, du genre je compile ma première DLL, je compile la deuxième qui fait référence à la première et je recompile la première en incluant une référence vers la deuxième etc..  y aurait-il une façon de procéder un peu plus clean ?
 
Autre question, ma première DLL fait donc référence à la deuxième (par un #include). Si je ne spécifie pas au compilateur la bibliothèque à fournir, forcément, ça va gueuler au moment de linker (undefined reference gnagnagna..) y aurait-il un moyen de compiler malgré tout ma première DLL indépendamment des autres, en lui spécifiant que les autres symboles seront définis plus tard, à la manière des "extern" utilisés en C, qui permettent de compiler mais qui supposent plus tard qu'une implémentation soit dispo dans le code compilé ?
 
Merci bien ;)
 
(..sur Win32/Mingw32)

Reply

Marsh Posté le 06-10-2012 à 23:26:30   

Reply

Marsh Posté le 07-10-2012 à 06:56:55    

Compile tes 2 DLL (mais juste la compilation, pas le link) et une fois que tu as tous tes fichiers objets tu peux link.
 
Tant qu'il ya la déclaration, la compilation passera.
 

Code :
  1. void foo();
  2. int main(int argc, char **argv) {
  3.    foo();
  4.    return 0;
  5. }


Ca par exemple ça compile (mais bien entendu ça passe pas le link ^^" )
Si tu as à coté l'implémentation de foo, tu pourras la compiler, et après il suffit de link les 2 fichiers objets pour avoir un exe valide (ou une dll dans ton cas)

Reply

Marsh Posté le 07-10-2012 à 10:45:59    

Salut Iradrille,
 
bien vu ce système. Le problème est que je passe par qmake (Qt) qui génère les makefiles.. Faudrait que je retouche à la mano les makefiles générés pour ne linker qu'à la fin de toutes les compilations.. :)


---------------
Le plaisir est le bonheur des fous. Le bonheur est le plaisir des sages.
Reply

Marsh Posté le 07-10-2012 à 20:05:46    

Ouais les makefile générés automatiquement c'est pratique, mais dans certains cas pas le choix faut les retouchés à la main.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed