-
Notifications
You must be signed in to change notification settings - Fork 0
GCC 6.x cruzado
xeleh edited this page Jan 8, 2022
·
5 revisions
Cómo instalar el GCC 6.x para desarrollar cruzado desde Windows:
- Ir a https://github.com/SteveMoody73/amiga-gcc/releases y bajar la última versión
- Instalar en C:\amiga-gcc (Importante para no tener problemas)
- Si no hay espacio en C:\ o no se quiere ocupar espacio de esa partición hacer un link así:
` C:>mklink /J amiga-gcc W:\Amiga\amiga-gcc
Junction created for amiga-gcc <<===>> W:\Amiga\amiga-gcc `
-
Comprobar que está instalado y ver qué versión tenemos: Desde la línea de comandos ejecutar
m68k-amigaos-gcc -v
-
Compilar un fichero de manera sencilla:
m68k-amigaos-gcc testgcc.c
Esto generará un fichero a.out que podemos ejecutar desde AmigaOS. -
Hello World:
#include <stdlib.h>
#include <stdio.h>
#include <dos/dos.h>
#include <clib/dos_protos.h>
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
#include <exec/exec.h>
#include <intuition/intuition.h>
struct GfxBase *gfxbase ;
struct IntuitionBase *intuitionbase ;
struct Window *ventana ;
static struct NewWindow datos_ventana = {
0 , 14 ,
192 , 160 ,
(UBYTE) ~ 0 , (UBYTE) ~ 0 ,
IDCMP_CLOSEWINDOW | IDCMP_NEWSIZE | IDCMP_REFRESHWINDOW,
WFLG_CLOSEGADGET | WFLG_DRAGBAR | WFLG_DEPTHGADGET |
WFLG_SIMPLE_REFRESH | WFLG_SIZEBBOTTOM | WFLG_SIZEGADGET,
0 , 0 ,
"FUCK UNITY" ,
0 ,
0 ,
96 , 48 ,
(UWORD) ~ 0 , (UWORD) ~ 0 ,
WBENCHSCREEN
};
// ------------------------------------------------------------------------------------------------
//
//
void bucle()
{
int salir = FALSE ;
while(!salir) {
struct MsgPort *winPort ;
struct IntuiMessage *mensaje ;
unsigned long winSig ;
winPort = ventana->UserPort ;
winSig = 1 << winPort->mp_SigBit ;
Wait(winSig) ;
while(mensaje = (struct IntuiMessage *)GetMsg(winPort)) {
switch(mensaje->Class)
{
case IDCMP_CLOSEWINDOW:
salir = TRUE ;
break ;
case IDCMP_REFRESHWINDOW:
BeginRefresh(ventana) ;
EndRefresh(ventana, TRUE) ;
break ;
}
}
}
}
// ------------------------------------------------------------------------------------------------
//
//
int main(int argc, char *argv[])
{
printf("\nFunciona\n") ;
gfxbase = (struct GfxBase *)OpenLibrary("graphics.library", 33) ;
intuitionbase = (struct IntuitionBase *)OpenLibrary("intuition.library", 33) ;
if(gfxbase != NULL && intuitionbase != NULL) printf("\nTODO OK!!\n") ;
{
ventana = OpenWindow (&datos_ventana) ;
if (ventana != NULL) {
bucle() ;
CloseWindow(ventana) ;
}
}
return 0 ;
}
- Resultado: