Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1376 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Compilation de source C+OpenGL sous Windows

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compilation de source C+OpenGL sous Windows

n°870627
c0wb0y
:d
Posté le 11-10-2004 à 20:45:34  profilanswer
 

Bonjour,
Je souhaites compiler du codes comportant de l'openGL sous windows afin de bosser mes TP chez moi. Ces TP sont fait sous linux, mais sur mon pc, j'ai pas (encore) ce qu'il me faut pour rester sous linux (du son (ok ca a rien a voir avec de la prog, mais un pc sans son, ca me lourde :) ))
 
Donc je voudrais compiler mon appli sous windows (a priori le projet ne contient pas de code exotique a linux et ca devrait se compiler n'importe où).
J'ai essayer Devcpp, mais c'est bien lourd d'utilisation (les projets a creer sinon on peut pas passer de parametre etc o_O) et encore, c'était loin d'etre parfait, puisque je ne parvenais pas a recompiler mon code.
 
Je pense qu'il me manque carément des bibliotheques/librairies OpengL sous windows.
 
Quels outils puis-je utiliser (si possible qui prendrait directement en compte le makefile (ou alors je le modifie un peu pour win, mais un pseudo-makefile qd meme) ?
merci bien :=)
 
(ha oui, pas de truc payant si possible (Visual C ou j'sais pas quoi, j'ai pas ^^ )

mood
Publicité
Posté le 11-10-2004 à 20:45:34  profilanswer
 

n°870634
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 20:49:46  profilanswer
 

Le mieux c'est que tu te connecte via telnet sur le serveur linux de ton école.

n°870637
c0wb0y
:d
Posté le 11-10-2004 à 20:51:54  profilanswer
 

mmm, je ne pourrais que bosser le code et le compiler ?
Je doute que je puisse ensuite executer le programme sur mon pc sous windows ^^

n°870639
cris56
Posté le 11-10-2004 à 20:52:04  profilanswer
 

bon ben devcpp ca va (tu as aussi mingw et cygwin)
 
perso j'utilise gcc en ligne de commande, et pour ton makefile no probleme, make est inclus
 
pour opengl, c'est deja inclus dans devcpp
si tu utilise glut pour le fenetrage telecharge le pack pour windows


Message édité par cris56 le 11-10-2004 à 20:52:47
n°870641
Lam's
Profil: bas.
Posté le 11-10-2004 à 20:53:23  profilanswer
 

De l'OpenGl ? En Telnet ? Ouille.
 
Plus sérieusement, dev-cpp est l'un des meilleurs choix.  
 
Tu peux également simplement installer l'environnement cygwin, installer les outils de dév, et ça sera comme sous linux, avec make, gcc, etc.
 
Après, je recommanderais Visual Studio, mais c'est payant, c'est un peu complexe de s'y mettre, et c'est hors sujet ici.
 
edit: Cris56 m'a griller. (sic).
 


Message édité par Lam's le 11-10-2004 à 20:54:19
n°870648
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 20:56:52  profilanswer
 

j'ai même lancé le netscape de mon école avec ça :
http://www.labf.com/download/winaxe.html

n°870652
c0wb0y
:d
Posté le 11-10-2004 à 20:59:57  profilanswer
 

j'ai installé cygwin ya qq jours, mais ya pas gcc :x (je dois l'installer moi même ? o_O )
 
"gcc en ligne de commande" sous windows ca me plairait bien en fait, j'vais chercher un coup sur le site de gcc, mais il renvoyer sur cygwin :x
 
Vais voir un peu du coté de mingw
 
 
edit => j'ai installé Winaxe tout a l'heure, j'ai rien compris o_O
(en même temps j'ai lu aucune doc, shame on me !  :o )


Message édité par c0wb0y le 11-10-2004 à 21:01:04
n°870658
cris56
Posté le 11-10-2004 à 21:04:23  profilanswer
 

c0wb0y > pour gcc, devcpp suffit (c'est un edi qui utilise gcc), va voir dasn bin/ ya tout ce qu'il faut

n°870663
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 21:06:49  profilanswer
 

Démarrer, Programmes, WinaXe, cliquez sur "XSession".
Une fenêtre "XSession" dans la barre des tâches ou un "X" à côté de l'heure. C'est bon signe.
Il s'agit du serveur X qui fournit à d'autres applications des fonctions d'affichages de fenêtres.
Lancer "Telnet_SSH" dans le menu Démarrer, Programmes, WinaXe.
Interface : Telnet
Host      : ServeurDeMonEcole
Port      : 23
 
Si dans le titre de la fenêtre Telnet, le mot entre chevron n'est pas <xterm>, alors faites ce qui suit.
Dans le menu Options, Settings, dans l'onglet Type, choisissez "XTERM" pour "Terminal Type"
Ensuite tapez : xterm -display VotreAdresseIP:0.0 &
VotreAdresseIP peut être connue grâce à la commande ipconfig lancée dans une session MS-DOS.
L'adresse IP est de la forme xxx.xxx.xxx.xxx
Si un message d'erreur apparaît, mieux vaut fermer votre "XSession" en cliquant droit sur l'icône de la barre des tâches et relancer "XSession", puis "Telnet_SSH" comme indiqué plus haut.

n°870665
c0wb0y
:d
Posté le 11-10-2004 à 21:09:42  profilanswer
 

pains-aux-raisins => merci beaucoup, je garde ta solution, je teste ca demain (faut que je recupere l'ip du serveur de l'iut) :)
(mais il faudrait qd meme une methode "offline" )
Je vais desinstaller devcpp et le reinstaller sans changer de repertoire de destination, il a l'air de bouder mon D:\programmation :/

mood
Publicité
Posté le 11-10-2004 à 21:09:42  profilanswer
 

n°870676
Lam's
Profil: bas.
Posté le 11-10-2004 à 21:19:25  profilanswer
 

cowboy: oui, il faut sélectionner toi-même gcc et dev-utils dans le programme "setup" de cygwin (le programme d'install qu'on download du site cygwin).

n°870795
c0wb0y
:d
Posté le 11-10-2004 à 22:19:31  profilanswer
 

Citation :


adsl@adslbox ~/formats
$ make
gcc -I /usr/X11R6/include -g  -c formats.c
gcc -I /usr/X11R6/include -g  -c menu.c
gcc -I /usr/X11R6/include -g  -c io.c
gcc -I /usr/X11R6/include -g  -c graphique.c
gcc -I /usr/X11R6/include -g  -c chooser.c
chooser.c:6:21: sys/dir.h: No such file or directory
chooser.c: In function `lire_repertoire':
chooser.c:198: error: `DIR' undeclared (first use in this function)
chooser.c:198: error: (Each undeclared identifier is reported only once
chooser.c:198: error: for each function it appears in.)
chooser.c:198: error: `rep' undeclared (first use in this function)
chooser.c:218: warning: assignment makes pointer from integer without a cast
chooser.c:220: error: dereferencing pointer to incomplete type
chooser.c:221: error: dereferencing pointer to incomplete type
chooser.c:227: error: dereferencing pointer to incomplete type
chooser.c:235: error: dereferencing pointer to incomplete type
make: *** [chooser.o] Error 1


 
 :cry:  
 
Ca sera plus simple de configurer linux je crois -_- (quoi que...)
 
Il me manque glu32 pour utiliser gcc (enfin le compilo inclu par devcpp) =/(
(j'ai la dll sur le dur, mais on dirait que les librairies ne sont pas prise par le compilo par contre)

n°870809
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 22:22:45  profilanswer
 

tu te fais une partition linux et l'affaire est pliée :o

n°870814
cris56
Posté le 11-10-2004 à 22:23:49  profilanswer
 

c0wb0y a écrit :

Citation :


adsl@adslbox ~/formats
$ make
gcc -I /usr/X11R6/include -g  -c formats.c
gcc -I /usr/X11R6/include -g  -c menu.c
gcc -I /usr/X11R6/include -g  -c io.c
gcc -I /usr/X11R6/include -g  -c graphique.c
gcc -I /usr/X11R6/include -g  -c chooser.c
chooser.c:6:21: sys/dir.h: No such file or directory
chooser.c: In function `lire_repertoire':
chooser.c:198: error: `DIR' undeclared (first use in this function)
chooser.c:198: error: (Each undeclared identifier is reported only once
chooser.c:198: error: for each function it appears in.)
chooser.c:198: error: `rep' undeclared (first use in this function)
chooser.c:218: warning: assignment makes pointer from integer without a cast
chooser.c:220: error: dereferencing pointer to incomplete type
chooser.c:221: error: dereferencing pointer to incomplete type
chooser.c:227: error: dereferencing pointer to incomplete type
chooser.c:235: error: dereferencing pointer to incomplete type
make: *** [chooser.o] Error 1


 
 :cry:  
 
Ca sera plus simple de configurer linux je crois -_- (quoi que...)
 
Il me manque glu32 pour utiliser gcc (enfin le compilo inclu par devcpp) =/(
(j'ai la dll sur le dur, mais on dirait que les librairies ne sont pas prise par le compilo par contre)


 
non  glu32 y est, c'est sur !!!
 
et c'est quoi ces lib, c'est quoi les fichiers ? tu utilises quelle bibliotheque pour le fenetrage ?


Message édité par cris56 le 11-10-2004 à 22:24:24
n°870826
Lam's
Profil: bas.
Posté le 11-10-2004 à 22:27:00  profilanswer
 

Il manque un petit #include <dirent.h> dans ton chooser.c, non ?

n°870870
c0wb0y
:d
Posté le 11-10-2004 à 22:37:44  profilanswer
 

Citation :


...
chooser.c:6:21: sys/dir.h: No such file or directory
chooser.c:7:24: sys/dirent.h: No such file or directory
chooser.c:12:21: GL/glx.h: No such file or directory
...


 
:-/
 
(developper sous windows => suicide)

n°870877
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 22:39:12  profilanswer
 

ça me rappelle de vieux problèmes... il n'y a pas une histoire de path pour les includes où un truc dans le genre ?

n°870878
c0wb0y
:d
Posté le 11-10-2004 à 22:39:21  profilanswer
 

XD
c'etait pas dans include/sys
 
peuvent pas mettre leur librairie au même endroit dans tout les compilos ? ca simplifierai al vie de tout le monde  :o
 
 
(ha oui,ca compile pas pour l'erreur d'au dessus, je cherche glx maintenant)


Message édité par c0wb0y le 11-10-2004 à 22:40:01
n°870886
Lam's
Profil: bas.
Posté le 11-10-2004 à 22:41:40  profilanswer
 

Nan, c'est la norme Posix qui dit où ça se trouve. Et certains programmes n'en tiennent pas compte. (Surtout ceux écrits dans les années 70 par des mecs avec des mullets et des moustaches d'acteurs de pornos).  
 
Donc dégage le sys/dir.h, et remplace sys/dirent.h par dirent.h

n°870938
c0wb0y
:d
Posté le 11-10-2004 à 22:55:02  profilanswer
 

C'est fait, mais il reconnait pas le type DIR =/ Etant donné que c'est déclaré dans dirent.h (par contre la bibliotheque <dir.h> sert a rien, elle est vide (du blabla en en tete pour dire que c'est obsolete et que c'est la pour la compatibilité)
Dans dirent le type DIR est bien definie par un typedef struct {...} DIR;
 
Bienvenue dans le monde merveilleur des applications portables ?

n°870945
Lam's
Profil: bas.
Posté le 11-10-2004 à 22:57:31  profilanswer
 

Qu'est-ce qui merde exactement ?

n°870987
c0wb0y
:d
Posté le 11-10-2004 à 23:09:28  profilanswer
 

(changement de post, j'ai dit n'importequoi ^^" )
 

Citation :

C:\DOCUME~1\adsl\MESDOC~1\formats>make
gcc -I /usr/X11R6/include -g  -c chooser.c
chooser.c: In function `lire_repertoire':
chooser.c:218: warning: assignment from incompatible pointer type
chooser.c:220: error: dereferencing pointer to incomplete type
chooser.c:221: error: dereferencing pointer to incomplete type
chooser.c:227: error: dereferencing pointer to incomplete type
chooser.c:235: error: dereferencing pointer to incomplete type
make: *** [chooser.o] Error 1


 
je vous poste le bout de code correspondant :
 

Code :
  1. static int lire_repertoire(char *nom)
  2. {
  3.   dir *rep;
  4.   struct direct *entree;
  5.   struct stat buf_stat;
  6.   char type;
  7.   ptr_entree_rep er, fin_er;
  8.   char *acces;
  9.   int taille_acces=256;
  10.  
  11.   /* ouverture du repertoire */
  12. printf("nom entree lire_rep : %s\n", nom);
  13.   if((rep = opendir(nom))==NULL){
  14.     return (-1);
  15.   }
  16.   acces = (char *)malloc(taille_acces*sizeof(char));
  17.   printf("add acces = %x\n", access);
  18.   /* lecture de chaque entree du repertoire */
  19.   /* et construction de la liste a afficher */
  20.   while((entree = readdir(rep))!=NULL){
  21.     if(strcmp(".", entree->d_name)==0) continue;
  22.     while (taille_acces < strlen(nom) + strlen(entree->d_name) + 2){
  23.       free(acces);
  24.       taille_acces *= 2;
  25.       acces = (char *)malloc(taille_acces*sizeof(char));
  26.     }
  27.     strcpy(acces, nom); strcat(acces, "/" ); strcat(acces,entree->d_name);
  28.     stat(acces, &buf_stat);
  29.      
  30.     if(S_ISDIR(buf_stat.st_mode)) type=REP;
  31.     else
  32.       if(S_ISREG(buf_stat.st_mode)) type=FIC;
  33.       else continue;
  34.            
  35.     er = new_entree_rep(entree->d_name, type);
  36.    
  37.     if(tete_er==NULL){
  38.             tete_er = fin_er = er;
  39.     }
  40.     else{
  41.       fin_er->suiv = er;
  42.       er->prec = fin_er;
  43.       fin_er = er;
  44.     }
  45.   }


 
edit (le dernier de ce post promis (: )
> Cette source fonctionne tres bien lorsque c'est compilé sous linux


Message édité par c0wb0y le 11-10-2004 à 23:13:13
n°870991
pains-aux-​raisins
Fatal error
Posté le 11-10-2004 à 23:12:41  profilanswer
 

montre ton arbo et la tronche de ton make :D

n°870998
c0wb0y
:d
Posté le 11-10-2004 à 23:14:50  profilanswer
 

Citation :

11/10/2004  23:07    <REP>          .
11/10/2004  23:07    <REP>          ..
11/10/2004  23:07            18.904 chooser.c
20/01/1998  11:33               223 chooser.h
05/10/2004  09:25           261.807 formats
14/09/2004  06:36               999 formats.c
04/10/2004  13:04               984 formats.h
11/10/2004  22:33             5.173 formats.o
14/09/2004  06:37             1.018 graphique.c
11/10/2004  22:33             5.046 graphique.o
08/10/2004  20:56    <REP>          Image
04/10/2004  13:05             3.208 io.c
16/12/1997  14:05                54 io.h
11/10/2004  22:33             9.022 io.o
11/10/2004  22:12             1.250 Makefile
04/10/2004  13:54             1.850 menu.c
11/10/2004  22:33             6.091 menu.o
05/10/2004  09:25             5.741 perte.c
05/10/2004  08:28               122 perte.h
05/10/2004  06:32             8.002 pertebloc.c
11/10/2004  21:44            23.042 ppm.c
28/09/2004  08:42               580 ppm.h
05/10/2004  09:26               916 save.c
05/10/2004  07:39               275 types.h
              21 fichier(s)          354.307 octets
               3 Rép(s)   1.847.291.904 octets libres


 
 

Citation :

# SGI
#---------------------------------------------------------------------
#INCLUDE= -I /opt/GLUT/GL -I /opt/OpenGL/libaux $(COMMONRULES) -wlint,-fvihua
#LIB= -L /opt/GLUT/lib/glut -lglut -lGLU -lGL -lXmu -lXext -lX11 -lm
#CC=cc
#OPT= -g  
 
# SGI O2
#---------------------------------------------------------------------
#INCLUDE= -I /usr/include/GL  -fullwarn -w2
#LIB=  -lglut -lGLU -lGL -lXmu -lXext -lX11 -lm
#CC=cc
#OPT= -g  
 
# LINUX
#---------------------------------------------------------------------
INCLUDE= -I /usr/X11R6/include
LIB= -L /usr/X11R6/lib  -lglut -lGLU -lGL\
     -lXmu -lXt -lSM -lICE  -lXext -lX11 -lXi  -lz -lm   -Wl,-rpath,/usr/X11R6/lib  
CC=gcc
OPT= -g  
 
formats:  formats.o menu.o io.o graphique.o chooser.o ppm.o perte.o
 $(CC) $(OPT) -o formats  formats.o menu.o io.o graphique.o chooser.o ppm.o perte.o  $(LIB)
 
formats.o: formats.c
 $(CC) $(INCLUDE) $(OPT) -c formats.c
 
io.o: io.c
 $(CC) $(INCLUDE) $(OPT) -c io.c
 
chooser.o: chooser.c
 $(CC) $(INCLUDE) $(OPT) -c chooser.c
 
menu.o: menu.c
 $(CC) $(INCLUDE) $(OPT) -c menu.c
 
graphique.o: graphique.c
 $(CC) $(INCLUDE) $(OPT) -c graphique.c
 
ppm.o: ppm.c
 $(CC) $(INCLUDE) $(OPT) -c ppm.c
 
perte.o: perte.c
 $(CC) $(INCLUDE) $(OPT) -c perte.c
clean:
 -rm -f *.o

n°870999
Lam's
Profil: bas.
Posté le 11-10-2004 à 23:15:08  profilanswer
 

Nan. Remplace "dir * rep" par "DIR * rep;", et redonne le résultat.

n°871003
c0wb0y
:d
Posté le 11-10-2004 à 23:16:23  profilanswer
 

c'est fait :)
(copier coller avant la modif ^^" )
 
 
(le resultat est posté précédement (post édité, tu avais peut etre lu avant que je change le contenu du message  :jap: )


Message édité par c0wb0y le 11-10-2004 à 23:17:03
n°871007
c0wb0y
:d
Posté le 11-10-2004 à 23:18:37  profilanswer
 

hum, faudra pas trop me poser de question la dessus, je comprends pas trop cette portion du programme :/
(on vient a peine d'attaquer la programmation systeme avec cette histoire de DIR et stat :-/ )
(donc ca ca été codé par le prof)

n°871012
Lam's
Profil: bas.
Posté le 11-10-2004 à 23:23:59  profilanswer
 

Putain, je regarde trop la télé moi (j'aime bien la pub playtex d'ailleurs).
 
Sinon, remplace ton "struct direct entree" par "struct dirent entree", et recrache le résultat :-)

n°871018
c0wb0y
:d
Posté le 11-10-2004 à 23:30:34  profilanswer
 

Citation :

C:\DOCUME~1\adsl\MESDOC~1\formats>make
gcc -I /usr/X11R6/include -g  -c chooser.c
gcc -I /usr/X11R6/include -g  -c ppm.c
gcc -I /usr/X11R6/include -g  -c perte.c
gcc -g  -o formats  formats.o menu.o io.o graphique.o chooser.o ppm.o perte.o  -L /usr/X11R6/lib  -lglut -lGLU -lGL -lXmu -lXt -lSM -lICE  -lXext -lX11 -lXi  -lz -lm   -Wl,-rpath,/usr/X11R6/lib
C:\Dev-Cpp\bin\..\lib\gcc-lib\mingw32\3.3.1\..\..\..\..\mingw32\bin\ld.exe: cannot find -lGLU
make: *** [formats] Error 1


 
Et la, c'est la catastrophe car j'ai beau chercher, je trouve ni GLU ni GLX ...
je n'ai que les dll, pas de librairie =/
 
 
edit : sinon, c'est quoi al difference entre direct et dirent ? une norme ?


Message édité par c0wb0y le 11-10-2004 à 23:31:21
n°871020
Lam's
Profil: bas.
Posté le 11-10-2004 à 23:37:11  profilanswer
 

Bah nan, direct/dirent c'était une erreur d'orthographe.  
 
Pour ce qui est de glu, glx, etc. je te laisse regarder sur le forum (pense à regarder dans la section C++ aussi), ou sur le web.  
 
Et sur ce, je souhaite une bonne nuit. :)

n°871022
c0wb0y
:d
Posté le 11-10-2004 à 23:43:35  profilanswer
 

merci pour ton aide, je vais me coucher aussi :)
je rééssayerai tout ca demain apres midi :|

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Compilation de source C+OpenGL sous Windows

 

Sujets relatifs
Supprimer le bip de compilation sous VC++ 6Forum Open-Source
Log windows & VB[JAVA] generer un fichier bat windows depuis du code java pb encoding
compilation java3D chemin d'accès?[opengl] à la recherche des fragment program sur geforce3/4
Linux <-> Windowsinsertion fichier existant + version windows
Compatibilité des Sockets avec les différentes versions de Windowsservices windows via php
Plus de sujets relatifs à : Compilation de source C+OpenGL sous Windows


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR