Passage à VBCC
-
Je me suis décidé à utiliser VBCC au lieu du vieux SAS C.
Mais je rencontre quelques problèmes :
– Je n’ai pas trouvé de ‘make’
J’ai donc utilisé le vieux smake du sas, modifié mes makefiles pour utiliser les options du compilateur et du linker, mais encore un nouveaux prob : le linker me génère l’erreur suivante :
Fatal error 11 : xxx.o: File format not recognized
voici mon makefile :
###############
# Definitions #
###############
MODNAME = CPC
C_COMPILER = VC
C_COMPILER_OPTS = -c -O4 -cpu=68020 -+
LINKER = VLINK
LINKER_OPTS =
STARTUP = LIB:c.o
LIBS = LIB:sc.lib LIB:amiga.lib
OBJECTS = ppi.o upd.o vga.o crtc.o process.o z80.o draw.o main.o
##############################
# Generation de l’executable #
##############################
$(MODNAME): $(OBJECTS) $(LIBS)
$(LINKER) $(STARTUP) $(OBJECTS) $(LIBS) $(LINKER_OPTS) -o $(MODNAME)
#######################################
# Generation des fichiers objets (.o) #
#######################################
.c.o:
$(C_COMPILER) $(C_COMPILER_OPTS) $*.c
############################
# dependances des fichiers #
############################
vga.o : vga.c vga.h
ppi.o : ppi.c ppi.h
upd.o : upd.c upd.h
crtc.o : crtc.c crtc.h vga.h
z80.o : z80.c Z80.h vga.h crtc.h ppi.h upd.h gestport.h
process.o : process.c process.h
draw.o : draw.c vga.h z80.h
main.o : main.c vga.h upd.h z80.h draw.h
Bon, ce n’est peut-être pas l’endroit idéal pour poster ce genre de demande, mais je sais que les forums ici sont bien fréquentés.
Merci d’avance !
Le forum de http://www.guru-meditation.net est plus adapté je pense ! Des experts t’y répondront !
Toine
Juste un question comme ça, elle sert à quoi la rubrique développement d’Amigaimpact si à chaque demande d’un utilisateur vous le renvoyé sur gurumed ??
gurumed est sans doute très bien mais si personne ne répond plus aux questions posé dans cette rubrique alors pourquoi ne pas tous simplement la supprimer et mettre un lien gurumed à la place ?
Bienvenu dans le monde merveilleux de VBCC ! On va t’aider à trouver tes marques.
La commande make est chez moi celle de la distrib GCC.
Tu as laisser STARUP et LIBS à la sauce SAS/C. Tu n’as pas besoin de startup et la seule lib dont tu peux avoir besoin ici c’est l’amiga.lib mais avec VBCC tu dois la linker avec « -lamiga ».
A ta place je n’utiliserais pas le linker directement. La génération de l’exe devient :
$(MODNAME): $(OBJECTS)
$(C_COMPILER) $(LINKER_OPTS) -o $(MODNAME) $(OBJECTS) $(LIBS)
Avec LIBS contenant : -lamiga
Au lieu de C_COMPILER, on utilise traditionnellement CC.
N’hésite pas si ça coince encore.
Merci Corto !
Bon, ça ne link pas encore, mais j’avance…
J’ai maintenant des messages du genre :
Undefined reference to _fopen
Il doit me manquer une librairie.
Ensuite, j’ai les messages suivants :
Undefined reference to _IntuitionBase
et sur _AslBase, _GfxBase…
Et oui… Le Sas gérait automatiquement l’ouverture des libs systèmes… Bon, je vais revoir mon code, et je vous tiens au courant…
demoniak a écrit :
Bon, ça ne link pas encore, mais j’avance…
J’ai maintenant des messages du genre :
Undefined reference to _fopen
Il doit me manquer une librairie.
Oui … bizarre que ça bloque la-dessus. Tu n’as eu de problème à la compilation ? Juste au link ? fopen est dans vc.lib qui doit être linké automatiquement je suppose.
Tu as bien viré vlink de ton makefile ?
Ensuite, j’ai les messages suivants :
Undefined reference to _IntuitionBase
et sur _AslBase, _GfxBase…
Et oui… Le Sas gérait automatiquement l’ouverture des libs systèmes… Bon, je vais revoir mon code, et je vous tiens au courant…
Bon, et bien tu connais déjà la solution
Déclarer tout ça et ouvrir les libs à la mimine !
On y est presque.
A propos du make, cet article sur GuruMed pourrait peut-être te renseigner : http://www.guru-meditation.net/main.php3?root=412
Comme l’a dit Corto, il ne faut pas utiliser vlink directement pour linker, mais vc. L’article ci-dessus en donne un exemple.
Comme l’a dit Henes, il faut linker avec auto.lib (« -lauto ») pour que les libs soient ouvertes et fermées automatiquement. Par contre il est inutile de spécifier « -lc » si tu utilises vc pour linker.
corto a écrit :
henes a écrit :
N’écoute pas Corto. Link avec -lauto.
C’est marrant, je n’utilise plus -lauto depuis que tu avais dit que c’était nul/moche/pour les feignasses/déconseillé/… ou je ne sais quoi d’autre, je ne me souviens plus du terme exact.
C’est marrant: il me semble avant lu ca aussi
@+,
Léo.
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Passage à VBCC