J'ai un projet C++ non géré dans Visual Studio 2010. Il utilise boost, glut et une autre bibliothèque d'un fournisseur.Liaison dynamique et statique et déploiement dans Visual Studio 2010
J'ai mis en place le projet pour créer un exécutable plus "dll-indépendant" possible. Toutes les bibliothèques boost sont liées statiquement et il n'y a pas besoin de DLL dans le répertoire où l'exécutable reste. Même chose pour le Glut, j'ai lié le glut32.lib statique au lieu du glut32.dll et encore aucun problème.
J'ai sélectionné pour les bibliothèques Runtime la version NON-dll, c'est-à-dire la mise au point multithread (pour la configuration de débogage) et la configuration multithread pour la version.
Maintenant, le fournisseur dont je parlais avant, fournit deux alternatives un Vendor.lib et un Vendor.dll. Le Vendor.lib est ajouté dans le Linker-> dépendances supplémentaires mais à l'exécution je dois toujours mettre le Vendor.dll dans le même répertoire de l'exécutable, sinon l'environnement d'exécution se plaint parce qu'il ne trouve pas le Vendor Bibliothèque .dll.
Comment est-ce que je devrais résoudre ce problème? Je voudrais éviter de mettre dans chaque répertoire le fichier .dll.
Je ne veux pas mettre la DLL dans le même répertoire de l'exe et en général quelles sont les directives pour déployer des applications de console C++ non managées dans Visual Studio?
Je sais qu'il y a beaucoup de questions et de pages à propos de cet argument, mais aucun d'entre eux ne m'a éclairci sur ce point.
Une idée?
Ceci n'est pas spécifique à MS. Linux a aussi des bibliothèques d'importation. – rubenvb
Unix a deux types de "bibliothèques": les bibliothèques (fichiers .a) et les objets partagés (fichiers .so).Un fournisseur fournissant une bibliothèque (au sens général) fournira normalement les deux. Si vous liez sur le fichier .a, vous liez statiquement, et si vous liez sur le .so, vous liez dynamiquement. Le problème avec la solution Microsoft est que 1) vous avez deux fichiers distincts pour la liaison dynamique, et 2) l'un des fichiers a le même nom qu'une bibliothèque statique. –
Merci pour votre réponse. Je ne suis probablement pas le seul à être confus sur ce sujet. Ainsi, comme vous le dites, il existe deux types de fichiers .lib, l'un créé lorsqu'une bibliothèque dynamique est requise et l'autre pouvant être une bibliothèque statique. Je ne trouve pas un autre fichier Vendor.lib, donc je suppose que je suis dans le premier cas ... Merci! – linello