2012-07-24 4 views
0

J'ai indiqué à Visual Studio le répertoire de bibliothèque supplémentaire et écrit le fichier .lib dans les dépendances supplémentaires. (Oui, .lib, pas .dll). Ensuite, toutes les erreurs de fichiers de symboles externes ont disparu (eu certains d'entre eux avant), mais vient alors ceci:Visual Studio, .dll introuvable (jamais demandé)

Le nom réel et ce que je l'ai dit aux dépendances supplémentaires était: assimp.lib

Mais quand je lance le programme, il est dit: une dll dépendante n'a pas été trouvé, et dans la boîte de message, il dit Assimp32.dll

et je n'ai jamais, jamais dit d'inclure un nom de dll, et surtout ce nom, donc je suis très confus, et j'ai vérifié plusieurs fois si j'ai fait une erreur, mais ne semble pas.

Répondre

9

Vous avez indiqué à votre application d'utiliser la DLL en la liant au fichier lib. Le fichier que vous liez n'est pas un static library en tant que tel. Comme dans, il ne contient pas toutes les fonctionnalités.

Dans ce cas, il s'agit d'un import library (assimp.lib) qui contient les informations du point d'entrée dans la DLL (assimp32.dll). C'est pourquoi lorsque vous exécutez le programme, il demande toujours une DLL. Même si vous pensez que vous n'avez pas dit à votre programme de le faire.

+0

Merci, réponse acceptée. Je ne peux pas encore répondre à la question ... –

+0

Je suis content que vous l'ayez trouvé utile. – Bart

+0

Merci de décrire ceci - J'étais très confus en pensant que je fournissais une bibliothèque statique avec assimp.lib, mais en voyant toujours "une DLL dépendante n'a pas été trouvée". – larsonmattr

2

J'ai téléchargé la version 3.0 de la bibliothèque et je peux dire que Visual Studio signifie ce qu'il dit. La taille de assimp.lib dans assimp--3.0.1270-sdk\lib\assimp_release-dll_win32 est juste 88 KB, donc il est trop petit pour contenir tout le code d'une telle bibliothèque étendue comme Open Asset Import Library, tandis que la taille de Assimp32.dll situé dans assimp--3.0.1270-sdk\bin\assimp_release-dll_win32 est entière 6900 KB, donc c'est là que les plus goodies sont effectivement situé.

Conclusion: assimp.lib ne dépend vraiment Assimp32.dll, donc vous devez copier et garder Assimp32.dll dans le même dossier où se trouve .exe de votre programme.

Questions connexes