2010-10-23 6 views
2

J'ai un projet que j'ai codé sur OS X et que j'essaie maintenant de construire sur Windows. Je l'ai mis en place MinGW, a créé un makefile, et après beaucoup de finagling tout compile, mais quand il arrive à l'éditeur de liens étape un grand nombre d'erreurs se produisent le long des lignes de:Comment puis-je résoudre ces problèmes de liaison OpenGL dans MinGW?

SourceFile.cpp:(.text+0x1809): undefined reference to '[email protected]' 

La commande de liaison, en omettant tous les noms de source.o est assez simple:

g++ -lglu32 -lopengl32 

J'ai aussi essayé avec l'ordre de lien commuté, et avec le chemin complet vers les fichiers .a inclus, tous me donnent les mêmes résultats. L'utilisation des macros _STDCALL_SUPPORTED et _M_IX86 dans l'étape du compilateur n'a fait aucune différence. Dans le cas où c'est pertinent, j'utilise GLee, que je construis directement dans mon programme (même si j'ai aussi essayé avec glew, et obtenu les mêmes résultats).

Toute aide serait appréciée.

Répondre

6

La solution était follement simple, pour des raisons que je ne comprends pas complètement le -lglu32 -lopengl32 devait être sur le côté droit de la liste des fichiers .o au lieu de la gauche dans la commande.

1

Les raisons sont simples. Lorsque les choses sont liées, pour une ligne de liaison qui a des choses dans cet ordre: A B C D

B résout des externes dans A, C résout des externes dans A et B, et ainsi de suite. S'il y a des externes dans D qui doivent être résolus par A, vous devez inclure A après D ... lequel IIRC, vous pouvez vous en sortir en rajoutant A ...

A B C D A

Questions connexes