HomeHome  CalendarCalendar  FAQFAQ  SearchSearch  MemberlistMemberlist  UsergroupsUsergroups  RegisterRegister  Log inLog in  

Share | 
 

 Compilation sous Mac

View previous topic View next topic Go down 
AuthorMessage
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Compilation sous Mac   Sun Aug 02, 2009 2:29 pm

Bonjour ^^

J'ai tenté de compilé la lib sous Mac, pour l'instant je n'ai pas pris les fichiers concernants la SFML (ni le .cpp, ni le header).
Je me retrouve avec 78 erreurs, quasiment toutes dûes à ce type manquant : PFNGLPOINTPARAMETERFPROC
Je suppose qu'il s'agit d'un type de winAPI :-°

Si le type ne provient pas de winAPI, d'où vient-t-il ?
Si l'on ne trouve pas de solution, pourriez vous revoir votre code pour les prochaines versions pour permettre une meilleure portabilité ? Rolling Eyes

Merci de répondre à ma requête ^^'
Back to top Go down
View user profile http://www.snake-softs.com
Darktib
Committer


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

PostSubject: Re: Compilation sous Mac   Sun Aug 02, 2009 2:31 pm

Bienvenue!

Perso je pense que c'est plutot en rapport avec OpenGL, mais je n'en suis pas sur du tout (avec le GlPointParameter)
Back to top Go down
View user profile
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Sun Aug 02, 2009 2:39 pm

Merci ^^

Pour OpenGL ce serait possible, je me souviens déjà de ne pas avoir certaines valeurs en préprocesseur (des defines absents par rapport à la version windows).
Ce qui me chagrine, c'est que pour windows, vous appelez <windows.h>directement, donc je suppose que le type fait plus ou moins partie de windows, que d'OpenGL. :/

Très embêtant comme problème ^^'
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Sun Aug 02, 2009 2:59 pm

Salut,

je n'ai jamais testé de compilé la lib sous mac. Tout simplement parceque je n'ai pas de mac.
La lib a été concu dans un soucis de compatibilité, donc a priori ca devrait pouvoir compiler sous mac.
Maintenant va evidemment y avoir des petit truc a changer etant donné que ca a jamais été testé.

Les types manquants sont lié a openGL (ce sont les types de fonctions poiur gérer les extensions). Maintenant c'est bizarre car tout ces types sont défini dans glext.h qui est un fichier officiel openGL et qui est fourni avec SPARK.

Peux tu poster ton log de compil complet ?

Je vais me renseigner de mon coté au sujet d'openGL sur mac.
Le probleme ne devrait pas être trop compliquer a résoudre.

Concernant winAPI, ce n'est pas du tout utilisé dans SPARK, il y a des includes "windows.h" uniquement car cela est necessaire pour utiliser openGL sous windows. Il y a juste dans les demos ou les include sont fait sans define (il faudra que je corrige ca). Du coup, tu peux directement virer les include windows.h des demos.
Back to top Go down
View user profile http://spark.developpez.com
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Sun Aug 02, 2009 3:21 pm

Merci d'avoir répondu si vite Smile

Alors voilà le message que j'ai : jocolor

Quote :
Building target “Spark” of project “Spark” with configuration “Debug” — (78 errors)

Spark/Ext/Renderer/GL/SPK_GLExtInterface.h:230: error: 'PFNGLPOINTPARAMETERFPROC' does not name a type
Spark/Ext/Renderer/GL/SPK_GLExtInterface.h:231: error: 'PFNGLPOINTPARAMETERFVPROC' does not name a type
Spark/Ext/Renderer/GL/SPK_GLExtInterface.h:247: error: 'PFNGLTEXIMAGE3DPROC' does not name a type
Spark/Ext/Renderer/GL/SPK_GLExtInterface.h: In static member function 'static void* SPK::GL::GLExtInterface::glGetProcAddress(const char*)':
Spark/Ext/Renderer/GL/SPK_GLExtInterface.h:256: error: 'glxGetProcAddress' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp: At global scope:
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:31: error: 'PFNGLPOINTPARAMETERFPROC' does not name a type
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:32: error: 'PFNGLPOINTPARAMETERFVPROC' does not name a type
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:33: error: 'PFNGLTEXIMAGE3DPROC' does not name a type
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp: In static member function 'static bool SPK::GL::GLExtInterface::loadGLExtPointParameter()':
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:81: error: 'PFNGLPOINTPARAMETERFARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:81: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:82: error: 'PFNGLPOINTPARAMETERFVARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:82: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:89: error: 'PFNGLPOINTPARAMETERFARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:89: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:90: error: 'PFNGLPOINTPARAMETERFVARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:90: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:97: error: 'PFNGLPOINTPARAMETERFARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:97: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:98: error: 'PFNGLPOINTPARAMETERFVARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:98: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:105: error: 'PFNGLPOINTPARAMETERFARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:105: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:106: error: 'PFNGLPOINTPARAMETERFVARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:106: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp: In static member function 'static bool SPK::GL::GLExtInterface::loadGLExtTexture3D()':
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:137: error: 'innerGLTexImage3D' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:137: error: 'PFNGLTEXIMAGE3DPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:137: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:140: error: 'innerGLTexImage3D' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:141: error: 'PFNGLTEXIMAGE3DPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:141: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:143: error: 'innerGLTexImage3D' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp: In static member function 'static void SPK::GL::GLExtInterface::glTexImage3D(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*)':
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:165: error: 'innerGLTexImage3D' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLRenderer.cpp: In static member function 'static void SPK::GL::GLRenderer::saveGLStates()':
Spark/src/Ext/Renderer/GL/SPK_GLRenderer.cpp:46: error: invalid conversion from 'int*' to 'GLint*'
Spark/src/Ext/Renderer/GL/SPK_GLRenderer.cpp:46: error: initializing argument 2 of 'void glGetIntegerv(GLenum, GLint*)'
Spark/src/Ext/Renderer/GL/SPK_GLRenderer.cpp:47: error: invalid conversion from 'int*' to 'GLint*'
Spark/src/Ext/Renderer/GL/SPK_GLRenderer.cpp:47: error: initializing argument 2 of 'void glGetIntegerv(GLenum, GLint*)'
Spark/Ext/Renderer/GL/SPK_GLExtInterface.h:230: error: 'PFNGLPOINTPARAMETERFPROC' does not name a type
Spark/Ext/Renderer/GL/SPK_GLExtInterface.h:231: error: 'PFNGLPOINTPARAMETERFVPROC' does not name a type
Spark/Ext/Renderer/GL/SPK_GLExtInterface.h:247: error: 'PFNGLTEXIMAGE3DPROC' does not name a type
Spark/Ext/Renderer/GL/SPK_GLExtInterface.h:256: error: 'glxGetProcAddress' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp: At global scope:
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:31: error: 'PFNGLPOINTPARAMETERFPROC' does not name a type
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:32: error: 'PFNGLPOINTPARAMETERFVPROC' does not name a type
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:33: error: 'PFNGLTEXIMAGE3DPROC' does not name a type
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:81: error: 'PFNGLPOINTPARAMETERFARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:81: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:82: error: 'PFNGLPOINTPARAMETERFVARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:82: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:89: error: 'PFNGLPOINTPARAMETERFARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:89: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:90: error: 'PFNGLPOINTPARAMETERFVARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:90: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:97: error: 'PFNGLPOINTPARAMETERFARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:97: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:98: error: 'PFNGLPOINTPARAMETERFVARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:98: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:105: error: 'PFNGLPOINTPARAMETERFARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:105: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:106: error: 'PFNGLPOINTPARAMETERFVARBPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:106: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:137: error: 'innerGLTexImage3D' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:137: error: 'PFNGLTEXIMAGE3DPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:137: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:140: error: 'innerGLTexImage3D' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:141: error: 'PFNGLTEXIMAGE3DPROC' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:141: error: expected `;' before 'glGetProcAddress'
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:143: error: 'innerGLTexImage3D' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLExtInterface.cpp:165: error: 'innerGLTexImage3D' was not declared in this scope
Spark/src/Ext/Renderer/GL/SPK_GLRenderer.cpp:46: error: invalid conversion from 'int*' to 'GLint*'
Spark/src/Ext/Renderer/GL/SPK_GLRenderer.cpp:46: error: initializing argument 2 of 'void glGetIntegerv(GLenum, GLint*)'
Spark/src/Ext/Renderer/GL/SPK_GLRenderer.cpp:47: error: invalid conversion from 'int*' to 'GLint*'
Spark/src/Ext/Renderer/GL/SPK_GLRenderer.cpp:47: error: initializing argument 2 of 'void glGetIntegerv(GLenum, GLint*)'

Les derniers messages tels que: 'invalid conversion from 'int*' to 'GLint*' sont liés au compilateur (il faudrait tout caster, afin de pouvoir compiler avec g++).

Voilà ^^
J'espère que vous arriverez à en tirer quelque chose Smile
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Sun Aug 02, 2009 4:28 pm

Ok, après m'etre renseigné sur le probleme, apparemment les plateforme mac utilisent leur propre fichier glext.h et certaines ne définissent pas les pointeurs de fonctions openGL avec la même syntaxe, d'ou les types non définis.

Tu dois avoir un glext.h quelques part sur ton ordi (autre que celui fourni avec spark), as tu moyen de mettre le fichier en ligne quelques part que je puisse voir a quoi il ressemble.

[EDIT]
Tu peux essayer de compiler le module opengl de SPARK en rajoutant le define GL_GLEXT_FUNCTION_POINTERS dans le préprocesseur.
et aussi en changeant dans SPK_GLExtInterface.h :

Code:

   inline void* GLExtInterface::glGetProcAddress(const char* name)
   {
#if defined(WIN32) || defined(_WIN32)
      return (void*)wglGetProcAddress(name);   // windows
#else
      return (void*)glxGetProcAddress(name);   // unix/mac
#endif
   }

Le glxGetProcAddress par glXGetProcAddress (avec un X majuscule), c'est une erreur de frappe que je pensais avoir corrigé, mais en fait non.

Si ca ne marche toujours pas, c'est parceque ta version de glext.h n'a pas les meme typedef que le "standard" (qui n'en est pas vraiment un du coup) pour les pointeur sur les fonctions d'extensions openGL. Du coup je te ferais quelques modif qui devrait fonctionner.
Back to top Go down
View user profile http://spark.developpez.com
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Mon Aug 03, 2009 6:03 am

Pour glext, il faut juste faire:

Code:

#if defined(__APPLE__)
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>

PFNGLPOINTPARAMETERFPRO est l'un des types qui pose les problèmes :/
La fonction glXGetProcAddress(name); ne pose pas de problème Smile
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Mon Aug 03, 2009 3:33 pm

Il me semble que le glext.h est direct inclus avec le gl.h sur mac, mais je n'en suis pas sur.

Enfin, je te fais une classe glExtInterface modifiée ce soir pour que tu puisses tester si ca marche.
Back to top Go down
View user profile http://spark.developpez.com
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Mon Aug 03, 2009 3:36 pm

ok, merci de l'attention Smile
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Mon Aug 03, 2009 7:57 pm

Merci a toi ! Tes retours me permettent d'améliorer la bibliothèque.

Donc je t'ai fait une nouvelle version de certains fichiers. En gros il suffit de remplacer les anciens. Le chemin est directement inclus dans le rar (Il suffit de décompresser dans le répertoire ou est installé le projet)

L archive remplace ces fichiers :
  • SPK_GL_DEF.h
  • SPK_GLExtInterface.h
  • SPK_GLExtInterface.cpp


Pour la télécharger c'est ici.

Voila, tiens moi au courant pour savoir si ca marche mieux.

Merci.
Back to top Go down
View user profile http://spark.developpez.com
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Tue Aug 04, 2009 6:07 am

Bon bah on passe de 78 erreurs à 16 Smile
12 erreurs avec ma modif ^^

Donc pour enlever les quelques petites erreurs, il faut que dans SPK_GL_DEF.h tu n'inclues pas "glext.h" pour la version mac dans le bloc:

Code:
#ifndef SPK_NO_GLEXT_INC
#include "glext.h"
#endif

Il faut l'inclure avant quand tu gères pour mac :

Code:
#if defined(__APPLE__)
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>

Pour les autres erreurs, c'est dû à glext qui ne semble pas pareil (ne trouve pas glXGetProcAddr).
J'utilise une lib différente pour mon moteur 2d/3d: Glee
Regarde en bas de la page, tu pourras obtenir les sources et compiler, j'ai déjà ma version pour mac Wink

J'espère que cela résoudra le pb Smile
PS: Glee est meilleure que glew, et permet de ne pas avoir à appeler de fonction pour l'initialiser (un appel à une fonction opengl (en fait de glee) obtient l'adresse de la fonction dans la carte graphique et permet aussi se savoir si elle a pu ou pas être chargée Wink ).
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Tue Aug 04, 2009 10:51 am

Ok merci de ta reponse,

en fait a la base, je ne voulais pas utiliser de bibliotheque exterieure genre glew ou glee pour eviter justement d avoir des dependances supplementaires et aussi des problèmes de compatibilité parceque ce n est pas possible d'utiliser glee et glew en meme temps.

Du coup par exemple, toi qui utilise glee ne veut pas que SPARK utilise glew alors que la SFML utilise glew donc pour utiliser SPARK avec la SFML, il faut que j'utilise glew...

Bref je serai obligé de faire 2 versions de SPARK, l une avec glee et l'autre avec glew...

Au moins en gérant les extensions de mon coté je n'ai pas ce problème.

Je vais essayer un dernier truc en gérant les extensions manuellement. Je te passe ca des que c est pres. Si ca ne te dérange pas de tester...

En fait il n y a aucune fonction sur mac pour récuperer l addresse des fonctions openGL. J ai trouvé un lien utile permettant de coder soit meme cette fonction (c est d ailleurs celle qu utilise glew mais pas glee par contre). En plus je vais enlever tout dependance a glext.h. Donc ca devrait marcher tout ca.

Merci beaucoup
Back to top Go down
View user profile http://spark.developpez.com
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Tue Aug 04, 2009 1:18 pm

Oui je connais déjà ce code Smile (disponible dans les sources de la SDL Smile ).
Par contre il posera des warnings à la compilation, car les fonctions sont dépréciées du compilo. :/

Pas la peine de faire 2 versions, glew a l'air de te suffir et la mise en place de glee serait plus ou moins inutile (car SFML l'utilise comme tu le dis) :-°

En espérant t'être utile ^^'
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Tue Aug 04, 2009 7:58 pm

Hop, j'ai fais la nouvelle version qui modifie les même fichiers que la première.
Normalement ca marche. glext.h n'est plus utilisé.

nouvelle version
Back to top Go down
View user profile http://spark.developpez.com
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Wed Aug 05, 2009 4:38 am

Bon je remarque déjà 1 chose : Ne tentes pas de faire du code Apple =p
En fait quand on code avec l'api de mac, il faut le faire en obj-C ou obj-C++ (donc dans un .m (Obj-C) ou .mm (obj-C++)).
Je m'occupe de la modification du code :-°

Bon ça y est presque, il n'y a plus que 2 erreurs (j'ai corrigé le reste).
Je suis obligé d'enlever SPK_GL_All.cpp et SPK_All.cpp pour que ça compile, si j'en laisse 1 il me dit que certains symboles existent dans 2 fichiers.
Voici les 2 erreurs :

Quote :
ld: duplicate symbol SPK::GL::GLExtInterface::SPK_GL_GetProcAddress(char const*)in /Users/pierreemmanuellallemant/Desktop/Spark/build/build/Spark.build/Debug/Spark.build/Objects-normal/i386/SPK_GL_All.o and /Users/pierreemmanuellallemant/Desktop/Spark/build/build/Spark.build/Debug/Spark.build/Objects-normal/i386/SPK_GLExtInterface.o

ld: duplicate symbol SPK::GL::GLExtInterface::SPK_GL_GetProcAddress(char const*)in /Users/pierreemmanuellallemant/Desktop/Spark/build/build/Spark.build/Debug/Spark.build/Objects-normal/i386/SPK_GL_All.o and /Users/pierreemmanuellallemant/Desktop/Spark/build/build/Spark.build/Debug/Spark.build/Objects-normal/i386/SPK_GLExtInterface.o


J'ai dû modifier les sources donc je te fournis le tout (avec le projet Mac, que je changerai d'emplacement pour que tu y en mettes un pour windows). télécharger

Aussi, il serait pas mal de pouvoir faire:
#include <Spark/fichier.h> au lieu de faire #include "fichier.h".
Si tu ne sais pas le faire avec codeblocks ou autre dis moi et je t'aiderais à mettre en place tout celà ^^

[EDIT]

En fait le code n'est pas en obj-c (je pensais qu'il utilisait tout de même cocoa et non ^^'
Donc en fait le code tu pourras le remettre où tu l'as mis ^^ Sauf quil faudra mettre les bons include cette fois =p
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Wed Aug 05, 2009 10:23 am

Le code tel que je te l ai fourni fonctionne ou pas alors ?

La duplication de symbole est due à tes modifs. La fonction dupliquée n est pas de moi (D ailleurs je vois pas ce qu'elle fait dans le core de la lib). En fait il manque un extern dans ton code.

Quand tu dis mettre les bons includes, c quoi ?

Si c est l'histoire de faire #include <SPARK/SPK.h> au lieu de #include <SPK.h>, je ne compte pas le changer parceque ca implique pleins de modifs pour quelque chose qui est au final uniquement une préférence personnelle. Si tu préfère la première solution, rien ne t'empeche d'utiliser le chemin que tu veux.
Back to top Go down
View user profile http://spark.developpez.com
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Wed Aug 05, 2009 11:26 am

J'ai modifié les sources, ton code ne compile pas encore tout a fait, voici la dernière erreur :

Quote :
ld: duplicate symbol SPK::GL::GLExtInterface::loadGLExtPointSprite() in /Users/pierreemmanuellallemant/Desktop/Spark/build/build/Spark.build/Debug/Spark.build/Objects-normal/i386/SPK_GL_All.o and /Users/pierreemmanuellallemant/Desktop/Spark/build/build/Spark.build/Debug/Spark.build/Objects-normal/i386/SPK_GLExtInterface.o

Le projet est téléchargeable ici.

Quel IDE utilises-tu ?
Si tu utilises codeblocks, pourra tu créer un dossier mac et win32 dans build/ ?
Je me chargerai de modifier mon projet, et toi de mettre le projet pour win ^^
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Wed Aug 05, 2009 11:38 am

Pour l erreur, c est normal, il ne faut pas que tu compiles SPK_GL_ALL.cpp les *_ALL.cpp, c est juste des fichiers incluant tout les cpp d'un module donné pour accéléré les compilations des modules. Si tu compiles 2 fois les cpp pour une lib a chaque fois, tu te retrouves avec des duplicate de partout (d ailleurs c est bizarre que tu en ai qu un seul)

Mais en fait il faut soit compiler le *_ALL.cpp soit tous les cpp du module mais pas les 2.
Dans code blocks, il me semble pas que les _ALL.cpp soient inclus aux projets. Tu as du modifier des trucs dans les projets.

Sinon, je developpe avec visual studio express. Tout simplement parceque j'utilise visual studio au boulot, donc je suis plus habitué même si le express est beaucoup plus limité.

Concernant le dossier mac (pour bien faire il en faudrait un linux aussi). En fait je ne fourni les libs que pour win32, ceux qui veulent utiliser SPARK sous linux ou mac doivent les compiler eux meme. Après je peux séparer le dossier lib en dossier win32,mac et linux mais les repertoire mac et linux resteront vides.
Back to top Go down
View user profile http://spark.developpez.com
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Thu Aug 06, 2009 4:03 am

Ok.
Bon bah ça compile, faudra juste le dire pour ceux qui voudront compiler plus tard.
je fais le dossier mac ou pas alors ? :-°
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Thu Aug 06, 2009 10:56 am

J ai fait une nouvelle version de la bibliotheque avec les modif pour mac. Je n ai pas créer le dossier mac dans cette release mais j'y réfléchirai pour la prochaine.

Quand tu dis le dire a ceux qui veulent compiler ? Normalement c est pas necessaire puisque les fichiers SPK_..._ALL.cpp ne sont pas inclus aux projets, donc ne sont pas compiler quand tu build.
Back to top Go down
View user profile http://spark.developpez.com
gogohan



Messages : 11
Date d'inscription : 2009-08-01
Age : 24
Localisation : Lorient

PostSubject: Re: Compilation sous Mac   Thu Aug 06, 2009 2:32 pm

Bon déjà, ça ne se fait pas d'inclure des .cpp :-° (jamais vu çà même si ça marche).
Bah ces fichiers étant dans les dossiers sources, il doivent être compilés. (du moins on doit s'y attendre) :/

Si l'on télécharge 1 projet et qu'on doit comprendre qu'il faut pas compiler certains fichiers qui sont dans les sources, alors l'utilisateur va pas aimer çà et ...
De plus certains utilisateurs s'arrêteront car ça ne compile pas quand on compile tous les fichiers :/
Back to top Go down
View user profile http://www.snake-softs.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Sat Aug 08, 2009 1:53 pm

C'est bien de dire que ca ne se fait pas d'inclure des cpp mais encore faut il savoir pourquoi :
C'est considéré comme une mauvaise pratique car il y a un risque de multi définition de symboles dans les unités de compilations.

Mais ici les fichiers ne font pas parti des sources de SPARK, c'est juste une méthode pour me faire gagner du temps avec la gestion des projets dans les différents IDE.

Après je suis d'accord que ca peut porter a confusion pour l'utilisateur mais a priori si tu utilises code::blocks tu n'as pas a te soucier de ca, les projets étant déjà créé et configuré. Enfin je vais sans doute les enlever des sources dans une prochaines version.
Back to top Go down
View user profile http://spark.developpez.com
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: Re: Compilation sous Mac   Mon Aug 10, 2009 9:29 pm

Bon dans la prochaine version de la bibliothèque, il y aura une note de rajouté en haut de ces fichiers *_ALL.cpp pour clarifier la chose. J'ai fait des tests et ca réduit bien la taille de .lib en plus d'optimiser le code, d'accélérer la compilation et de me faciliter la gestion des projets dans les 3 IDE, donc je ne les enleverai pas.

Quote :

Note :

This file is used to speed up the compilation of a module, lower the size
of the output library on certain compilers and allow deeper optimizations
by reunifying all compilation units into one (single compilation unit
method).

Either only this file or all the files below should be compiled, not both or
some 'multiple definition of symbols' errors will occur.

Voila je pense que c'est clair maintenant.
Back to top Go down
View user profile http://spark.developpez.com
Sponsored content




PostSubject: Re: Compilation sous Mac   Today at 3:44 am

Back to top Go down
 
Compilation sous Mac
View previous topic View next topic Back to top 
Page 1 of 1
 Similar topics
-
» Selenium on IIS with Tight Security - How To?

Permissions in this forum:You cannot reply to topics in this forum
 :: Forum Francais :: Evolution (fr)-
Jump to: