Opengl sous VSC++express 2008 ou Builder6

Résolu
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011 - 16 févr. 2008 à 01:53
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011 - 23 févr. 2008 à 21:57
Bonsoir a tous,

J'ai un titi problème pour programmer en Opengl : ca marche pas ^^

Alors avant toute chose (d'exposer en details les problemes etc..) j'aimerais savoir si ily a quelque chose de spécial a savoir sur le developpement opengl sous VisualStudioC++ Express 2008 ou C++Builder6?

Merci d'avance

13 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 févr. 2008 à 13:30
Donc, si on oublie le warning à la compilation, enlevable avec un
return 0; à la fin du main, il n'y a que des erreurs au link (Lors de
l'édition des liens réalisée par le lieur).


Le lieur ne trouve pas l'implémentation d'un certains nombre de
fonctions (Généralement dans un .lib), alors que le compilo à trouvé
leurs prototypes (Généralement dans un .h).


On remarque que les fonctions utilisées dans le programme sont
préfixées par gl et par glut, et que seule (et toutes... enfin j'ai pas
vérifié) l'implémentation des fonctions préfixées par glut sont
introuvable.


Je dirais qu'il te manque donc (Comme je le disais plus haut...) un
.lib en entrée du lieur. Le .lib de la librairie glut. Il s'agit a
priori des fichiers glut.lib et glut32.lib, qui se trouve probablement
sur ton dur, vu que tu as les .h.


C'est (presque) toujours la même chose bordel !

Erreur à la compile -> Vérifier qu'on a inclus les bon .h et qu'ils
sont dans des répertoires accessibles au compilo -> répertoire
include de la librairie.

Erreur à l'édition des liens -> Vérifier qu'on met en entrée du lieur les .lib.
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
20 févr. 2008 à 13:11
* Cherche son fouet à débutant *

Ah ! Le voilà !


Nan je déconne. Je suis faché contre les erreurs de compile plus que contre toi.


Là, tu vois, tu as déjà plus un "vrai" problème.


Là, ça te dit que le format du .lib est invalide, potentiellement au
format coff (Soit dit en passant, c'est fort curieux que Builder ne
reconnaisse pas ce format. Mais bon.)


D'après Google, il y aurait moyen de changer le format avec coff2omf, fournit avec Builder.

Il s'utilise en invite, et prend en argument le nom de la lib à convertir, et le nom de la lib convertie.


Par exemple :

coff2omf glut32.lib glut32_bc.lib


En s'arrangeant pour que coff2omf et glut32.lib soient trouvables.


Tiens moi au courant stp
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 févr. 2008 à 17:45
Salut,

Sans message d'erreur, on peut éventuellement partir dans des divagations si ça peut te faire plaisir.
Regarde à tout hasard.

Comme pour toute lib en général, il faut que tu ais le répertoire contenant les .h de OpenGL dans les répertoires d'includes supplémentaires de la configuration de ton projet (Sous VC 2005 : Projet, propriété de bidule, propriété de configuration, C/C++, Général, autre répertoire d'include.)

Sinon, le compilo dirat qu'il ne trouve pas les entêtes.

Si ça plante au link, c'est qu'il manque des .lib en entrée du lieur (Editeur de lien, Entrée, Dépendances supplémentaire).

La lib OpenGL que tu as eu à sans doute un répertoire include qui contient les .h, et un répertoire lib qui contient les .lib.

C'est toujours la même chose, mais c'est vrai que la première fois, on le sait pas...
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
16 févr. 2008 à 22:13
Merci beaucoup, je pense avoir deja fait tout ca sous VSC++ mais ya toujours des problemes, je vais tout refaire et je preciserai si je trouve pas.
Sinon sous Builder il me dit qu'il manque plein de trucs dans le .OBJ quelqu'un saurait pourquoi?

Merci encore pour la réponse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 févr. 2008 à 22:40
Comme je te l'ai dit, si tu faisait un copier coller du message d'erreur, on pourrait peut être plus t'aider...
Tu peux aussi essayer de copier coller le message d'erreur dans Google.
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
18 févr. 2008 à 12:59
Voila les messages d'erreurs sous Builder :

[C++ Avertissement] Unit1.c(30): W8070 La fonction devrait retourner une valeur
[Lieur Erreur] Unresolved external 'glutInit' referenced from C:\DOCUMENTS AND SETTINGS\PARSY\BUREAU\OPENGL\C++BUILDER\CARRE COLORÉ\UNIT1.OBJ
[Lieur Erreur] Unresolved external 'glutInitDisplayMode' referenced from C:\DOCUMENTS AND SETTINGS\PARSY\BUREAU\OPENGL\C++BUILDER\CARRE COLORÉ\UNIT1.OBJ
[Lieur Erreur] Unresolved external 'glutInitWindowPosition' referenced from C:\DOCUMENTS AND SETTINGS\PARSY\BUREAU\OPENGL\C++BUILDER\CARRE COLORÉ\UNIT1.OBJ
[Lieur Erreur] Unresolved external 'glutInitWindowSize' referenced from C:\DOCUMENTS AND SETTINGS\PARSY\BUREAU\OPENGL\C++BUILDER\CARRE COLORÉ\UNIT1.OBJ
[Lieur Erreur] Unresolved external 'glutCreateWindow' referenced from C:\DOCUMENTS AND SETTINGS\PARSY\BUREAU\OPENGL\C++BUILDER\CARRE COLORÉ\UNIT1.OBJ

Pour ce code :

//Reprenant le code la creation de fenètre, rajoutons un carré colorés
//on appelle la bibliothèque glut32, bibliothèque qui sert à faciliter l'utilisation
//d'Opengl par l'appelle de fonctions et qui appelle les autres bibliothèques Opengl.

#include <GL/glut.h>

int main(int argc, char* argv[])
{
/***Fonctions pour initialisé la fenetre***/

/*Cette fonction initialise glut, notemment sa communication avec le système*/
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowPosition(200,200);
glutInitWindowSize(250,250);
glutCreateWindow("Carré coloré");


//Opengl doit etre initialisé, il existe un nombre impressionnant de variables.
//Ici on se contententra de donner la couleur de fond et la taille d'un point.

/***Fonction pour le fond***/
glClearColor(0.0,0.0,0.0,0.0);
//Fonctionne selon le principe RVB, plus la variable correspondant a la transparence des objets.

/***Fonction pour définir la taille d'un point***/
glPointSize(2.0);
//Un point, le sommet d'un carré par exemple, fera ici deux pixels.

}
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
18 févr. 2008 à 22:22
Merci beaucoup pour ta réponse très complète je m'en vais essayer ca de suite, et je tacherai de retenir la titite lecon de fin (meme si elle est dite avec tant de violence snifou)

Encore merci (A MOI LES JOIES DE L'OPENGL YOUHOUUUU!!!)
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
20 févr. 2008 à 12:48
Euuuuuuuh...scuzez moi...mais je requiere encore votre aide(naaan me frappez pas je suis debutant, presque)

[Lieur Erreur] 'C:\DOCUMENTS AND SETTINGS\PARSY\BUREAU\FICHIERS GL\GLUT32.LIB' contains invalid OMF record, type 0x21 (possibly COFF)


Bon alors j'ai tout comme il etait marquer, j'ai inclus les .lib et tout et tout mais la le probleme semble venir du .lib lui meme ; d'ailleurs quant j'inclus Glu32.lib au lieu de Glut32.lib j'ai le meme message d'erreur mais concerant Glu32.

Finalement pas encore a moi les joies de l'opengl snifou.

Merci d'avance
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
21 févr. 2008 à 08:56
J'ai trouvé le coff2omf.exe dans le dossier BIN du compilateur Borland, ca m'ouvrait une commande et la refermait aussitot, je vais esayer de suite de l'appeler depuis le cmd...
ca marche, je comprend pas trop comment je dois faire pour convertir le lib (c'est cool t'as toute la manip' en direct XD)
... en tapant coff2omf -?2 j'ai plein d'options, oula j'y comprend rien lol.
AAAAh mais si je vais essayer la ligne que tu a mis


Ok ca a l'air de fonctionner, je lance mon programme opengl eeeeet....YA PU D'ERREUR...YEN A UNE AUTRE (omg c'est interminable, mais je finirais bien par le faire ce cube XD)

Cette fois c'est pas une erreur de compil, il lance la commande et ouvre un message : Le point d'entree de procédure _glutCreateWindow@4 est introuvable dans la bibliothèque de liaison dynamique GLUT32.DLL.

C'est grave docteur??(vasy sort ton fouet je sent que tu a une envie folle de t'en servir)
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
21 févr. 2008 à 17:41
Argh !


Allons bon.

C'était à craindre : la lib utilise la dll (C'est un concept que je ne
connais pas soit dit en passant. D'où je viens, les dlls existent mais
pas les .lib, pour mon plus grand bonheur).


Tu as convertis la lib, mais on dirait que ça l'a rendu incompatible avec la dll...


Vala un bout de tuto sur l'utilisation de OpenGL et glut sous C++ Builder 5.


Je dirais qu'il faudrait que tu regarde du côté de implib.

Dans un répertoire, tu mets le .lib original, le .lib que tu as convertis glut32_bc.dll, et enfin la dll glut32.dll.


Puis tu arranges pour enchaîner :

implib glut32.lib glut32.dll

implib glut32_bc.lib glut32.dll


Tu vois ce qui a pas planté (Des fois qu'une des deux ne plante pas...), et tu le met .lib résultant en entrée de ton lieur.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
21 févr. 2008 à 18:38
Je suis parvenu à compiler sur le C++ Builder 6 qui se trouve sur un serveur de mon bahut.


J'ai juste récupéré glut ici, lus ça (Il parle de Borland).


Puis j'ai utilisé implib sur la lib du zip :

implib glut32.lib glut32.dll


J'ai mis le chemin de glu32.lib dans Projet, Option,
Répertoires/conditions, chemin de bibliothèque. Il se trouvait dans le
home de C++ Builder 6, lib/Psdk.


Par contre, je n'ai réussi à compiler que pour un projet console (Pour
ne pas à avoir de WinMain), et l'application n'affichait pas grand
chose a part une console vide. Mais bon, c'est pas trop étonnant que ça
marche pas vu que je bossais sur un terminal, un genre de PC en
beaucoup plus stupide.
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
23 févr. 2008 à 21:42
Desole pour la reponse tardive, je regarde ca quand j'ai le temps et je te tiens au courant(une tonne de travail vient de me tombé dessus)

Encore merci^^
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
23 févr. 2008 à 21:57
D'apres les premieres lignes il vaut mieux que je continue sur VC++Express lol
0
Rejoignez-nous