Problème de conversion invalide [C++/GP32] - C++ - Programmation
Marsh Posté le 31-10-2003 à 11:50:03
pkoi +16 ???
ben fais un cast
La visiblement c'est du code C compilé avec un compilo C++ (le C++ est moins laxiste sur les casts entre pointeur que le C)
Marsh Posté le 31-10-2003 à 12:34:41
Il fait peur ce code ! strlen, ça marche si on lui passe un pointer NULL ? Et le +16 dans l'allocation est pas mal aussi
Conseil : tout réecrire proprement.
Marsh Posté le 31-10-2003 à 14:09:26
Je précise encore une fois que ça n'est pas MON code, ça provient de la lib SDL pour GP32, c'est pour ça que je préfèrerai éviter de le modifier ... C'est justement pour ne pas tout réécrire que j'utilise des librairies toutes faites
Faire un cast, ça revient bien à ça ?
Code :
|
Sinon oui, il est probable que ça ait été prévu pour utiliser en C, et pas en C++ ...
Quand au +16, j'ai aucune idée d'où il sort et à quoi il sert
Marsh Posté le 31-10-2003 à 11:16:57
Salut,
j'ai commencé à installer un environnement de dev sur mon Linux, pour pouvoir écrire et compiler des applications sur GP32.
J'ai installé la librairie SDL.
Mais évidemment, j'ai un problème sorti de l'espace ...
Mon code source contient tout au début: #include <stdio.h>
Le stdio.h concerné (livré avec sdl) contient entre autres: #include <gpwrap.h>
Et le gpwrap.h contient apparemment pas mal de fonctions écrites pour la GP32.
Je lance la compilation:
arm-thumb-elf-g++ -c -Wall -mcpu=arm9 -mthumb-interwork -msoft-float -O2 -g -o gpmain.o gpmain.cpp
Voici l'erreur que je me prends:
In file included from /home/albator/gp32dev/sdl/libc-wrap/stdio.h:4,
from gpmain.cpp:7:
/home/albator/gp32dev/sdl/libc-wrap/gpwrap.h: In function `char* strdup(const char*)':
/home/albator/gp32dev/sdl/libc-wrap/gpwrap.h:173: invalid conversion from `void*' to `char*'
La fonction en question est:
La ligne 173 étant celle avec le calloc.
Pourquoi suis-je le seul utilisateur de GP-SDL chez qui ça refuse de compiler ? Cela vient-il de la version du compilateur ? (gcc 3.2.2)
Comment résoudre ou contourner ce pb ?