PDA

Ver la versión completa : problemas al compilar sterm



neglox
11/01/2006, 05:32
estoy teniendo unos problemas un tanto extraños al compilar sterm.
No me gusta el makefile así que he optado por escribir yo el comando.Estoy usando este

arm-linux-g++ -O2 sterm.cpp -o sterm -lSDL -lutil

al parecer funciona bien pero de repente me sale un pequeño problema con los path, o eso me parece a mi:
c:\devkitgp2x\bin\..\lib\gcc\arm-linux\4.0.2\..\..\..\..\arm-linux\bin\ld.exe: c
annot find -lSDL

tantos ..\..\ ... pues no suenan muy bien, como para encontrar la libreria. Debido a problemas con eso mismo en el código fuente he tenido que cambiar el include del sdl por este.

#include <C:\devkitGP2X\include\SDL\SDL.h>

Los path que tengo en windows para que compile son los siguientes: C:\devkitGP2X\minsys\bin;C:\devkitGP2X\bin;C:\devk itGP2X\arm-linux\bin;

A alguien se le puede ocurrir, y porque no usa el makefile tan maravilloso que viene con el sterm, pues porque me da un error el g++ del estilo de que no funciona o no encuentra cc1plus, eso ya me pierde al 100%.Espero ayuda muchas gracias.

Logann
11/01/2006, 05:36
Creo que es normal, al no utilizar els makefile no tienes los includes que tendria (la SDL por ejemplo) y si no lo tienes definido en el entorno no lo encuentra. ¿no?

neglox
11/01/2006, 06:13
El contenido del makefile de sterm es el siguiente:

sterm: sterm.cpp 6x10.h
g++ -O2 sterm.cpp -o sterm -lSDL -lutil
sterm.gpu: sterm.cpp 6x10.h
/opt/crosstool/gcc-3.4.4-glibc-2.2.5/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-g++ \
-I /opt/local/gp2x/include/ -L . -O2 sterm.cpp -lSDL -lutil \
-o sterm.gpu
dist: sterm.gpu
rm -rf sterm-0.1
mkdir sterm-0.1
cp -a LICENSE README Makefile sterm.gpu sterm.cpp 6x10.h sterm-0.1
/opt/crosstool/gcc-3.4.4-glibc-2.2.5/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-strip \
sterm-0.1/sterm.gpu
clean:
rm -rf sterm sterm.gpu sterm-0.1

la sintaxis de makefile no la entiendo muy bien , yo lo unico que intento hacer es make y no me funciona adecuadamente, no se si tendre que hacer algo en plan make dist no se. pero yo no veo que mande alguna ruta mas que no le este pasando yo.Ademas tiene pinta de el makefile estar preparado para entorno unix no windows

Lurb
11/01/2006, 07:24
Ese makefile es para unix/linux así que para que rule en windows habría que tocar bastante.
Los parametros -I y -L son los directorios donde tiene que buscar los includes y las librerías.

Prueba con este makefile "generico" de un hola mundo que puso alguien, aunque te va a cascar al no encontrar en el código de sterm la llamada "forkpty" que no se si la habrá en Windows o se podrá agregar de alguna manera, si cortas y pegas ojo además, que los makefiles son muy pejigueros con los tabuladores, espacios y esas cosas



CROSS_COMPILE = C:/devkitGP2X/bin/arm-linux-
SDL_BASE = C:/devkitGP2X/bin/arm-linux-
LDFLAGS = -static

CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
STRIP = $(CROSS_COMPILE)strip

CFLAGS = `$(SDL_BASE)sdl-config --cflags` -O2 -Wall -Werror
CXXFLAGS = `$(SDL_BASE)sdl-config --cflags` -O2 -Wall -Werror
LIBS = `$(SDL_BASE)sdl-config --libs`

SDLTEST_TARGET = sterm.gpu
SDLTEST_OBJS = sterm.o

all : $(SDLTEST_TARGET)

$(SDLTEST_TARGET) : $(SDLTEST_OBJS)
$(CXX) $(LDFLAGS) -o $(SDLTEST_TARGET) $(SDLTEST_OBJS) $(LIBS)
$(STRIP) $(SDLTEST_TARGET)

clean:
rm -f $(ALL_TARGETS) *.o *~




Si cambias la línea 86 del cpp por:

pid_t pid = fork();

compilará, pero seguramente deje de funcionar.

Yo como soy un novato en esto de la SDL y sólo quiero ver cómo maneja el texto y los botones, todas esas otras porquerías me las estoy cepillando sin contemplaciones.

neglox
11/01/2006, 22:20
Muchas gracias consegui que compilara, como tu decias cambiando la linea referente a los pty, lo único que me staba dando quebraderos de cabeza era que trataba los warnings como errores ( salian unos cuantos) pero bueno, creo yo que compilando un poco algunos proyectos podre ver la dinámica y así empezar a retorcarlos.