#1 10/09/2008 13:12:09

Anian
Member
Registered: 10/09/2008
Posts: 20

[Vista - VCpp Express] Rapport d'erreur du compilateur 'crosoft

salut,

Comme je te l'avais dit sur le site du zéro, je m'apprête à tester ton moteur 3D et à regarder un peu ce qu'il a dans le ventre .
Pour y parvenir, je me suis créé une petite Solution sous Visual C++ 2008 Express avec 5 projets nommés respectivement :
-SCEBase (contient juste SCEngine.c + des liens vers les entêtes SCEMinimal.h et SCEngine.h)
-SCECore
-SCEInterface
-SCEUtils
-SCELibWar (ta lib pour charger les OBJ)
Avec tout çà, je me suis fait un petit groupe de configuration pour compiler en dynamic ou static et en debug ou en release tout cela sous Win32
pour bien préparer mon plan de travail . J'espère que ces petits arrangements ne te dérangent pas, je n'ai pas (encore) trop touché aux sources de toute manière wink
J'ajoute que j'ai récuperé les bibliothèques précompilées pour glew, DevIL et CG de la société NVIDIA pour me simplifier un peu le travail .

Tout d'abord, je t'annonce tout de suite l'erreur générée par le compilateur :
-> au niveau du fichier 'SCEBuffers.c", lignes 897 et 919 dans la documentation, pour le premier argument de la fonction memcpy :
Je te conseille de mettre ceci memcpy ((char*)(ib->mapptr) + d->first, d->data, d->data_size); et idem pour l'autre .
Etait-ce bien ce que tu souhaitais avoir comme résultat ?

Autre chose, j'ai le sentiment que tu as glissé un peu toutes les entêtes dans tous les fichiers car à l'édition de liens, j'ai des messages du styles :
'ça sert à rien de me donner blababla.lib, il n'y a pas de rapport' wink
Bref, c'est con de lui passer le répertoire d'inclusion juste pour le nourrir d'entêtes ^^

Concernant les avertissements, j'ai :
- des pertes de données hypothétiques pour cause d'incompatibilités de type
- des incompatibilités unsigned/signed
- des retours de void ^^(assez amusants)
- etc... (dont certains avertissements que je n'ai pas pris le temps d'analyser en profondeur)

Au final, je n'ai testé que la compilation en "static debug" pour mes tests ultérieurs et çà a l'air de fonctionner correctement (avec mes petites modifications).
Je te donnerai mes impressions détaillées plus tard ... à ton retour probablement (il me semble que tu as indiqué quelque part que tu étais en vacances) .

Bonne continuation !!

Anian

PS : - je posterai les binaires dès lors que j'aurai obtenu des résultants concluants (ou rien dans le cas contraire smile )
PPS : - j'ai un projet en cours qui repose sur plusieurs choses importantes parmi lesquelles se trouve un moteur 3D en langage C donc, si je pense que le SCEngine a du potentiel, je contribuerai au projet dans un premier temps et l'incorporerai au miens dès lors qu'il sera mature . A voir donc ...

Offline

#2 10/09/2008 14:41:05

Ban
Administrateur
Registered: 24/03/2008
Posts: 15

Re: [Vista - VCpp Express] Rapport d'erreur du compilateur 'crosoft

Bonjour,

Déjà merci de prendre là peine de rapporter ce problèmes. De plus, une compilation sous Windows nous intéresse même si nous n'avons jamais eu le courage de la réaliser :-° (par manque d'habitude de la compilation sous Windows sans doutes).

En effet, Yno est absent pour le moment donc pour les détails il faudra attendre un peu ^^
J'ai cependant analysé quelques uns des problèmes que tu rencontre pour voir les différentes raisons/problèmes.

Pour être sur de parler de la même chose, quelle version as-tu compilé ? La version du Git ou la dernière disponible sur le site (qui se fait un peu vieille, il faut le dire…) ?

Anian wrote:

Tout d'abord, je t'annonce tout de suite l'erreur générée par le compilateur :
-> au niveau du fichier 'SCEBuffers.c", lignes 897 et 919 dans la documentation, pour le premier argument de la fonction memcpy :
Je te conseille de mettre ceci memcpy ((char*)(ib->mapptr) + d->first, d->data, d->data_size); et idem pour l'autre .

D'après la norme C, memcpy() attends un pointeur sur void en premier argument, le cast est donc tout à fait inutile. Quel est le prototype de de memcpy() sous MSVC++ ?

Anian wrote:

Autre chose, j'ai le sentiment que tu as glissé un peu toutes les entêtes dans tous les fichiers car à l'édition de liens, j'ai des messages du styles :
'ça sert à rien de me donner blababla.lib, il n'y a pas de rapport'

Hum, de ce que j'en sais et voit dans les sources, non, chaque fichier n'inclus que ce dont il a besoin. Sinon, quel rapport entre les inclusion de en-tête et les bibliothèques statiques .lib ? MSVC++ trouve seul de quelle bibliothèque statique il a besoin selon les en-têtes !?

Anian wrote:

Concernant les avertissements, j'ai :
- des pertes de données hypothétiques pour cause d'incompatibilités de type
- des incompatibilités unsigned/signed
- des retours de void ^^(assez amusants)
- etc... (dont certains avertissements que je n'ai pas pris le temps d'analyser en profondeur)

Pourras-tu détailler ces problèmes ? merci d'avance smile
Il y a cependant quelques avertissements connus avec GCC :

GCC wrote:

SCEError.c: In function ‘Logger_LogMsg’:
SCEError.c:223: warning: implicit declaration of function ‘vsnprintf’

Ceci est du à une utilisation d'une fonction C99 (vsnprintf) alors que le SCEngine se targue de compiler en ANSI C… C'est connu et pas encore corrigé.

GCC wrote:

SCELight.c: In function ‘SCE_Light_Apply’:
SCELight.c:335: warning: passing argument 3 of ‘SCE_Shader_SetParam4fv’ from incompatible pointer type
SCELight.c:336: warning: passing argument 3 of ‘SCE_Shader_SetParam4fv’ from incompatible pointer type
SCELight.c:337: warning: passing argument 3 of ‘SCE_Shader_SetParam3fv’ from incompatible pointer type

Et ceci est le gros lot, nous n'avons aucune idée du problème réel. Si quelqu'un trouve le pourquoi de ce warning, Yno lui en sera éternellement reconnaissant big_smile

Merci beaucoup en tout cas de nous fournir un retour d'utilisation sous Windows, cela nous maquait.

Si ce n'est pas trop demander (:-°), pourrais-tu nous fournir des projets MSVC++ utilisable avec une version gratuite/de démonstration sous Windows XP ? Cela nous permettrai de faire des tests de notre côté et sans doutes de corriger les incompatibilités plus rapidement.


Cordialement,
Ban

Offline

#3 10/09/2008 17:25:08

Anian
Member
Registered: 10/09/2008
Posts: 20

Re: [Vista - VCpp Express] Rapport d'erreur du compilateur 'crosoft

Salut,

J'étais justement en train de parcourir les sources ...
Effectivement, j'ai pris la version disponible au téléchargement, je n'ai aucune connaissance sur le logiciel (protocole?) Git donc je vais voir ce qu'il en est et mettre à jour le truc wink

Pour memcpy, le prototype de la fonction est identique donc la vérité est ailleurs :
Sans rentrer dans les détails, le compilo ne comprends pas qu'en faisant :
ib->mapptr + d->first
on lui demande de deplacer le pointeur de first octets alors qu'avec mon petit hack qui lui fait croire que c'est un pointeur sur des caractères (char étant sur un octet en mémoire), il ne considère plus qu'il y a une erreur . Enfin, j'espère qu'il n'y en a plus hmm

Hum, de ce que j'en sais et voit dans les sources, non, chaque fichier n'inclus que ce dont il a besoin. Sinon, quel rapport entre les inclusion de en-tête et les bibliothèques statiques .lib ? MSVC++ trouve seul de quelle bibliothèque statique il a besoin selon les en-têtes !?

Je revérifierai mais pour prendre un exemple, dans la partie 'utils' des sources que j'ai à ma disposition, il faut fournir le répertoire include de GLEW  pour que la compilation passe mais l'éditeur de liens n'a pas besoin de la lib static à l'édition de lien car il n'y trouve effectivement pas de références nécessaires .
Pas certain d'avoir été clair là? si?

EDIT : après courte vérification, c'est juste une inclusion pour les types GL dans SCEMemory.c donc milles excuses, j'ai dis des bêtises ... d'où la nécessité que je consulte les sources .  La lib n'est effectivement pas nécessaire dans ce cas de figure .

Pour le reste(les avertissements par exemple), il faudra attendre mes tests complets sachant que je vous fournirai les projets et les libs/dlls précompilées ... sous vista roll (personne n'est parfait). L'EDI que j'utilise étant  en libre téléchargement bien entendu !

Ps : je précise que je compile en mode debug pour mes tests donc la multitudes d'avertissements vient en partie de là (j'ai passé une option au compilo pour qu'il me sorte la majeur partie des problèmes)

Last edited by Anian (10/09/2008 17:32:38)

Offline

#4 10/09/2008 22:36:10

Ban
Administrateur
Registered: 24/03/2008
Posts: 15

Re: [Vista - VCpp Express] Rapport d'erreur du compilateur 'crosoft

Anian wrote:

Effectivement, j'ai pris la version disponible au téléchargement, je n'ai aucune connaissance sur le logiciel (protocole?) Git donc je vais voir ce qu'il en est et mettre à jour le truc wink

Git est une sorte de VCS. Si tu veux je peux te gzipper un snapshot.

Anian wrote:

Pour memcpy, le prototype de la fonction est identique donc la vérité est ailleurs […]

En effet, tu as raison, ce n'est pas valide. Je suis en train de corriger ça ainsi que beaucoup de problèmes d'initialisation de tableaux avec des valeurs dynamiques (y'a du boulot…).
Le compilateur était mal réglé, merci de nous l'avoir fait remarquer smile

Anian wrote:

Pour le reste(les avertissements par exemple), il faudra attendre mes tests complets sachant que je vous fournirai les projets et les libs/dlls précompilées ... sous vista roll (personne n'est parfait). L'EDI que j'utilise étant  en libre téléchargement bien entendu !

Excellent ! Je te remercie (et je pense Yno aussi ^^), mais prends ton temps, rien ne presse wink

Anian wrote:

Ps : je précise que je compile en mode debug pour mes tests donc la multitudes d'avertissements vient en partie de là (j'ai passé une option au compilo pour qu'il me sorte la majeur partie des problèmes)

C'est parfait ainsi, plus de bugs/incompatibilités potentiels seront trouvés, et je l'espère corrigés smile

Cordialement,
Ban

Offline

#5 11/09/2008 07:54:20

Anian
Member
Registered: 10/09/2008
Posts: 20

Re: [Vista - VCpp Express] Rapport d'erreur du compilateur 'crosoft

Voilà, ma version est à présent mise à jour !

Tout se passe bien ... je vais effectivement prendre mon temps pour analyser tout çà et voir pour corriger quelques incohérences au niveau du code .

A plus tard,

Anian

Offline

#6 11/09/2008 12:06:48

Anian
Member
Registered: 10/09/2008
Posts: 20

Re: [Vista - VCpp Express] Rapport d'erreur du compilateur 'crosoft

Désolé pour le double post ,

Voici un nouveau souci, le SDK de Microsoft ne contient pas de lien vers gluBuild3DMipmaps (utilisée à la ligne  1166 de SCECTexture.c par exemple), c'est assez chiant mais je vais tenter de contourner le problème wink
Ces gens qui se disent si forts ne savent même pas fournir une bibliothèque complète et à jour, même l'entête 'glu.h' ne contient pas la fonction et le compilo m'a retourner un simple avertissement   hmm

@++

Offline

Board footer

Powered by FluxBB 1.4.8