2011-03-09 4 views
1

J'essaie d'utiliser le package M4RI pour C++. J'ai téléchargé la source pour M4RI et j'ai exécuté le projet VS emballé. Il a créé m4ri.dll (pas de fichiers .lib). Maintenant, je veux "ajouter" ce fichier dll à un autre projet VS2010 C++ afin que je puisse utiliser la bibliothèque M4RI.Liaison DLL dans Visual Studio 2010 C++

Je déjà #include m4ri.h, mais je reçois toujours des erreurs de liaison. Comment ajouter cette référence au projet VS?

Merci d'avance.

Répondre

1

Ma solution: Je ne suis pas familier avec les différences entre C et C++, mais cela semble être le problème. Pour construire la bibliothèque M4RI, je devais explicitement lui dire de compiler avec C++ (Propriétés -> C/C++ -> Avancé -> Compiler As: "Compiler en C++")

Je ne suis pas sûr si cela causé mon problème, ou si ce n'est pas lié. Pour pouvoir utiliser la bibliothèque, j'ai dû modifier "m4ri.h" pour supprimer les sections #ifdef __cplusplus. Dès que ces directives de précompilateur ont été supprimées, j'ai pu facilement créer un lien vers M4RI.

J'apprécierais que quelqu'un puisse expliquer pourquoi cela a résolu le problème.

Merci!

+0

Je devrais également noter l'autre changement que j'ai fait au projet original de M4RI VS: Je l'ai changé d'une DLL à une bibliothèque statique. – Eric

+0

Je signale ces problèmes au développeur afin qu'ils soient corrigés pour VS dans les prochaines versions. Le problème est l'incompatibilité entre GCC et le compilateur MVS. Pour faire la compilation de la bibliothèque m4ri, je dois la forcer à compiler en C++, ce qui signifie que je dois commenter le "extern C" dans m4ri.h – Eric

0

Les erreurs de liaison peuvent provenir de plusieurs choses. Vos erreurs de lien sont-elles liées à m4ri? Avec les DLL, vous obtenez généralement une bibliothèque d'exportation qui devrait être incluse dans votre projet.

Questions connexes