2011-03-30 4 views
3

Je fais des recherches sur le côté quand je m'ennuie et j'ai trouvé ces fichiers glut32.dll, glut32.h et glut32.lib qui devraient contenir les définitions de fonctions (Si je suis pas confondu) de plusieurs fonctions différentes que ce code source utilise. J'utilise Visual Studio 2010, donc je dois ajouter des fichiers .lib manuellement en utilisant les propriétés du projet. Donc ...Lier la bibliothèque dans Visual Studio 2010

  • Je vais dans le projet/Properties/Config. Propriétés/VC++ Répertoires et ajoutez où mes fichiers d'en-tête et fichiers .lib/.dll sont aux propriétés Include, Reference, Source et Library.

  • Je passe ensuite en C/C++ dans la configuration. Prop. Menu, dans l'onglet Général, et ajoutez les emplacements de mes fichiers .h/.lib/.dll aux répertoires Include Additonal.

  • Retournez dans le répertoire C/C++, dans l'onglet Avancé et indiquez le code à compiler en tant que code C (le changement entre le code C et le code C++ ne fait rien à la fin).

  • Ensuite, en dehors de l'onglet C/C++, dans la configuration. Onglet Prop.s, j'entre dans l'onglet Linker. Ici, je vais dans les "Additional Library Directories" et ajouter où mes fichiers .lib et .dll sont. Ensuite, dans l'onglet Entrée, j'écris le nom du fichier .lib dans l'onglet Addition Dependencies. J'ai frappé appliquer après chaque changement et cliquez sur Appliquer/OK cette fois.

je vais construire par code et obtenir cette erreur:

1>------ Build started: Project: simplVRML, Configuration: Debug Win32 ------ 
1>Build started 3/30/2011 7:46:45 AM. 
1>InitializeBuildStatus: 
1> Touching "Debug\simplVRML.unsuccessfulbuild". 
1>ClCompile: 
1> All outputs are up-to-date. 
1>ManifestResourceCompile: 
1> All outputs are up-to-date. 
1>object.obj : error LNK2019: unresolved external symbol _arLoadPatt referenced in function _read_VRMLdata 
1>object.obj : error LNK2019: unresolved external symbol _arVrmlLoadFile referenced in function _read_VRMLdata 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arVrmlDraw referenced in function _main 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arUtilTimerReset referenced in function _main 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglSetupForCurrentContext referenced in function _main 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoCapStart referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arInitCparam referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arParamDisp referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arParamChangeSize referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arParamLoad referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoInqSize referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoOpen referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2001: unresolved external symbol _arMatchingPCAMode 
1>simpleVRML.obj : error LNK2001: unresolved external symbol _arTemplateMatchingMode 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglTexmapModeGet referenced in function _debugReportMode 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglDrawModeGet referenced in function _debugReportMode 
1>simpleVRML.obj : error LNK2001: unresolved external symbol _arImageProcMode 
1>simpleVRML.obj : error LNK2001: unresolved external symbol _arFittingMode 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoClose referenced in function _Quit 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoCapStop referenced in function _Quit 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglCleanup referenced in function _Quit 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoDispOption referenced in function _Keyboard 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arUtilTimer referenced in function _Keyboard 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglTexmapModeSet referenced in function _Keyboard 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglDrawModeSet referenced in function _Keyboard 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arGetTransMatCont referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arGetTransMat referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arDetectMarker referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoGetImage referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arVrmlTimerUpdate referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglCameraViewRH referenced in function _Display 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglCameraFrustumRH referenced in function _Display 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoCapNext referenced in function _Display 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglDispImage referenced in function _Display 
1>C:\Users\*\Desktop\AltReality\Pwork\simplVRML\Debug\simplVRML.exe : fatal error LNK1120: 34 unresolved externals 
1> 
1>Build FAILED. 
1> 
1>Time Elapsed 00:00:00.81 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

Je peux confirmer le problème est de savoir comment je relie la bibliothèque, je fais vraiment quelque chose de mal parce que quand je tente pour lier d'autres bibliothèques à d'autres projets, le résultat est le même. J'ai regardé en ligne et j'ai essayé plusieurs tutoriels, mais en vain, quelqu'un pourrait me dire ce que je fais mal?

Répondre

0

Quelques choses pour vous d'essayer:

  1. Avez-vous le dll dans le même répertoire que votre exe?
  2. Votre .h est-il ajouté à votre solution?
  3. Avez-vous ajouté la ligne #include "glut32.h"?
  4. Essayez d'ajouter la lib à votre solution au lieu des propriétés du projet. (Pas idéal, mais il faut le compiler pour l'instant)

Hope this helps, Eamonn

+1

2 et 3 causerait des erreurs du compilateur, éditeur de liens ne les. –

+0

Hey Eamonn :) 1- oui c'est 2 Oui Oui 3- Oui 4- Que voulez-vous dire? – Saint

+0

@Saint Vous oubliez peut-être de placer le fichier '.lib' dans votre répertoire de projet bien que vous ayez défini des fichiers lib inclus dans les propriétés du projet. – Jason

1

Essayez de mettre .dll et .lib fichiers nécessaires dans votre répertoire de projet.

6

Aucune des erreurs de liaison ne concerne les fonctions GLUT. Il semble que vous n'ayez pas de liens avec la bibliothèque ARToolkit. Ce sera une bibliothèque différente qui doit également être incluse dans votre ligne d'entrée.

6

Comme le message précédent l'indique, assurez-vous que vos fichiers .dll/.lib se trouvent dans le même répertoire que le fichier .exe/.dll que vous êtes en train de créer, puis allez dans le "Solution Explorer" de votre projet, à droite. cliquez sur le nom du projet, choisissez "Ajouter" -> "Élément existant ...", puis sélectionnez le fichier .dll/.lib que vous souhaitez inclure.

Vous devriez maintenant voir le fichier .dll/.lib répertorié sous la section "Fichiers source" dans "l'Explorateur de solutions". Je voyais les mêmes erreurs jusqu'à ce que j'ai exécuté les étapes que je viens de décrire. En outre, assurez-vous que vos fichiers d'en-tête sont inclus dans le projet et référencés dans les fichiers source de façon appropriée.

+0

épargnant de vie ... sauver ma journée entière .Je voudrais donner cette réponse 5 votes! – SimonFisher

1

Je rencontrais ce problème lors de la création d'une application 32 bits et de la tentative de liaison à une bibliothèque 64 bits. Peut-être que vous avez exactement le même problème ou peut-être l'inverse. Peut-être que vous essayez de lier à une bibliothèque 32 bits à partir d'un exécutable 64 bits. Pour corriger cela dans Visual Studio, accédez au Gestionnaire de configuration. Sélectionnez la plate-forme correcte ou créez une nouvelle plate-forme si nécessaire.

-1

essayer cette

#pragma comment(lib, "dev\\lib\\avformat.lib")