PDA

Ver la versión completa : Tutorial Eclipse, C/C++ y SDL (Windows)



WinterN
01/11/2005, 09:29
Este tutorial explica como instalar y configurar Eclipse para desarrollar con C/C++ y SDL.

1.- Instalar Eclipse

Instalar el Eclipse es tan fácil como:
a) Ir a la direccion: http://www.eclipse.org/downloads/index.php
b) Pinchar en Download now: Eclipse SDK 3.1.1 y elegir el mirror que nos guste.
c) Una vez descargado el zip, lo descomprimimos por ejemplo en C:\eclipse
d) Ejecutamos el eclipse.exe
f) Para cerrar la ventana de bienvenida pinchamos en la flecha que hay arriba a la derecha.

2.- Instalar CDT

El CDT es el plugin de eclipse que nos permite desarrollar en C/C++. Los pasos para instalarlo son:
a) En el eclipse, pinchar en Help -> Software updates -> Find and install...
b) Seleccionamos "Search for new features to install" y le damos a Next.
c) Pinchamos el botón "New Remote Site..."
d) En nombre ponemos CDT, y en URL ponemos http://download.eclipse.org/tools/cdt/releases/eclipse3.1
e) Nos aseguramos de que está marcado el check del CDT en la lista y pichamos Finish.
f) Seguimos los pasos que se nos indican (acuerdo de licencia, etc).
g) Reiniciamos el Eclipse (nos pedirá que lo hagamos al finalizar la instalación)
h) Abrimos la perspectiva de C/C++:
----- h1) Pinchar en Window -> Open Perspective -> Other...
----- h2) Seleccionar C/C++ en la lista y OK.

3.- Instalar Cygwin

Esto es lo que incluirá el compilador, debugger, linker, etc...
a) Descargamos en instalador de http://cygwin.com/setup.exe
b) Lo ejecutamos. En la segunda ventana selecionamos "Install from internet"
c) En Root directory metemos donde queremos instalarlo, por ejemplo c:\cygwin
d) En Install For seleccionamos "All Users" y en Default Text File Type "Unix / Binary"
e) En la siguiente ventana metemos la ruta donde queremos descargar los paquetes, por ejemplo c:\cygwin\paquetes
f) En la siguiente ventana seleccionamos "Direct Connection"
g) Esperamos a que se descargue la lista de mirrors y elegimos el que más nos guste.
h) Esperamos a que se descargue la lista de paquetes.
i) En la lista desplegamos la rama Base y marcamos la columna BIN en todos los que nos permita.
j) Hacemos lo mismo con la rama Devel y pinchamos en Siguiente. Esto llevará unos minutos.
k) Una vez que esté todo instalado, tenemos que modificar el PATH. Nos vamos a Panel de Control -> Sistema -> Opciones Avanzadas -> Variables de Entorno
l) Si está la variable "Path" en la lista la pinchamos y le damos a modificar, incluyendo la carpeta bin del directorio del cygwin, separado de una coma del resto: Por ejemplo quedaría algo así:

C:\Archivos de programa\CVSNT\;C:\WINDOWS\Microsoft.NET\Framework \v1.1.4322;C:\cygwin\bin

m) Si la variable no exitiese la creamos y le damos el valor C:\cygwin\bin (o la que hayamos elegido al instalar el cygwin).

4.- Incluir librerías SDL

Para compilar los proyectos SDL necesitamos poner las librerías en el lugar apropiado donde las encuentre el compilador.

a) Primero las descargamos de http://www.libsdl.org/download-1.2.php, al final de la lista, en "Development Libraries" seleccionamos la segunda de Win32 -> SDL-devel-1.2.9-mingw32.tar.gz (Mingw32)

b) Descomprimimos el zip una vez descargado.
c) De la carpeta bin, copiamos el SDL.dll a C:\cygwin\bin
d) De la carpeta lib copiamos los 4 archivos a C:\cygwin\lib\gcc-lib\i686-pc-mingw32\3.3.3
e) De la carpeta include copiamos todo a C:\cygwin\usr\include


5.- Crear nuevo proyecto

Existen 2 tipos de proyectos: Standard y Managed. En el primero somos nosotros los que decidimos el Makefile, en el segudo es el Eclipse el que hace el Makefile según nuestras configuraciones. Como esto es un tutorial básico, iremos por lo facil, el Managed (aunque si estamos haciendo un port que ya tenga un Makefile, o queremos hacerlo nosotros mismos, mejor standard).

a) En eclipse, abrimos la perspectiva de C/C++, si no la tenemos ya abierta (ver paso 2.h)
b) Pinchamos en el menú File -> New -> Managed Make C++ Proyect (podemos elegir el C si lo deseamos)
c) Le damos un nombre al proyecto y opcionalmente elegimos la ruta
d) Podemos darle a Next para ver las siguientes pantallas de configuración, pero como no vamos a cambiar nada, le damos a Finish en esta o en las siguientes.
f) Ahora en la vista de proyectos habrá una carpetita azul con el nombre de nuestro proyecto. Clic derecho y Properties
g) Pinchamos en el menú "C/C++ Build" en la parte izquierda de la ventana
h) En la pestaña "Tool Settings", Pinchamos en la subopción "Libraries" de "GCC C Linker"
i) En los dos recuadros de la derecha, en el de arriba pinchamos en Add (icono con signo + en verde)
j) Escribimos "SDLmain" (sin comillas) y OK.
k) Volvemos a dar a Add y añadimos "SDL" (sin comillas).
en el recuado de abajo pinchamos también en Add, pinchamos en Browse y buscamos la siguiente ruta: "C:\cygwin\lib\gcc-lib\i686-pc-mingw32\3.3.3" (dependiendo de donde hayamos instalado el cygwin.
l) Pinchamos en Apply para guardar los cambios, pero no cerramos la ventana.
m) En el desplegable que hay arriba con el texto "Configuration: " a la izquierda, selecionamos la otra opcion (si tenemos Debug, seleccionamos Release o viceversa).
n) Repetimos los pasos de h a k y pinchamos en OK.

Continuará...

WinterN
01/11/2005, 09:30
(reservado)

jjdrako
01/11/2005, 15:41
entonces yo que tengo instalado el devkitpro, el mingw y el msys, tengo que sustituirlos por el Cygwin???

Eskema
01/11/2005, 16:19
Hombre si quieres usar eclipse es una cosa drako, si quieres usar el devkitarm es otra. Si quieres un buen ide para win, el mejor q he visto es el codeblocks. Y ademas no cuesta nada de configurar

WinterN
01/11/2005, 19:46
entonces yo que tengo instalado el devkitpro, el mingw y el msys, tengo que sustituirlos por el Cygwin???

En principio, si tienes el make, el gcc y el gdb, simplemente con incluirlos en el path te los debería coger, pero creo que tendrás que trastear un poco con las librerías ya que el CDT por defecto te coge la estructura de directorios del cygwin.

otto_xd
01/11/2005, 19:52
Muchas gracias, ya solo me quedaba lo de las SDL, pero aun asi, es un tutorial muy mascadito para instalar las convinacion.
Espero que me sirva de mucho ete entorno.
Gracias.

jjdrako
01/11/2005, 19:57
bueno puedo cambiar esas tres cosas por el cygwn que tampoco pasa nada, ya me han heho pasar del sdk al sdl con que por cambiar otra vez ;)

otto_xd
02/11/2005, 01:25
es normal que cygwin ocupe 0,97 gigas?
Me da que he instalado cosas de mas, no?
Saludos

jjdrako
02/11/2005, 01:49
es normal que cygwin ocupe 0,97 gigas?
Me da que he instalado cosas de mas, no?
Saludosjo eso es un compilador y lo demas tonterias :D

Eskema
02/11/2005, 02:44
Has de elegir los paquetes a instalar en el cygwin, si parece una distro de linux con tanta cosa, xDD

WinterN
02/11/2005, 02:52
es normal que cygwin ocupe 0,97 gigas?
Me da que he instalado cosas de mas, no?
Saludos

En efecto, las cygwin son algo más que un simple compilador, es un port de herramientas linux a windows. Incluye hasta el Gnome y el KDE (entornos gráficos). Pero vamos, en la instalación te da a elegir qué componentes quieres instalar. Lo normal en estos casos es seleccionar la rama Base y la Devel, como pongo en el tutorial, aunque la mayoría de las herramientas de estas 2 ramas tampoco nos hacen falta (compiladores de otros lenguajes, etc).

A mi me viene a ocupar 220 megas, pero recuerdo haber instalado algunos paquetes más como editores, documentación, etc.

otto_xd
02/11/2005, 03:12
Ya he conseguido que ocupe unos 50 megas, es porque meti mas paquetes de los que devia, dentro de la carpeta dev, incluidos paquetes de perl, gtk...un monton de cosas que no se usan.
Saludos

otto_xd
02/11/2005, 03:18
Me he quedado escaso en esos 50 megas, ahora me leo lo que instalo, y veo si meto las gcc, que no se me han instalado(torpe soy xDD)
Saludos

Wonder Boy
02/11/2005, 19:23
Una preguntilla... ¿dónde hay capturas de pantalla del eclipse?

Es que en la página no encuentro una sección donde las haya y me gustaría saber el aspecto de éste IDE.

Un Saludo.

otto_xd
02/11/2005, 19:50
No me deja compilar, me dice que no encuentra gcc en la parte del warning, y suponia que era por el path, pero no, ya que lo he revisado y esta metido, y dentro del bine sta el gcc...
Saludos

jjdrako
02/11/2005, 22:05
te pongo una que he encontrado, si no lo ves bien ya te pillaria una propia ;)
http://screenshots.softonic.com/s2/36000/36486/0_eclipse.jpg

WinterN
02/11/2005, 23:34
Una preguntilla... ¿dónde hay capturas de pantalla del eclipse?

Es que en la página no encuentro una sección donde las haya y me gustaría saber el aspecto de éste IDE.

Un Saludo.

Aqui tienes unos tutoriales básicos de creación de proyectos y el debugger de Eclipse+CDT. Son todo a base de capturas :)

http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/cdt-home/user/Tutorials.html?cvsroot=Tools_Project

Wonder Boy
03/11/2005, 01:27
Gracias a los dos jjdrako y WinterN por las capturas :-), luego más tarde les echaré un vistazo que ahora tengo que irme.

otto_xd
04/11/2005, 02:42
Edito, que no se porque, no estaba instalado el make, ahora da otro error, pero voy a ver si tengo instalado todo.
Saludos

otto_xd
04/11/2005, 04:16
...no se me ha instalado el stdio.h¿?¿?¿?
Es normal?
Saludos

WinterN
04/11/2005, 07:34
Yo lo tengo en el usr/include, junto con el resto...

PD: He conseguido compilar este (http://bcz.emu-france.com/) emulador de Sega Master System, en SDL. Ahora voy a trastear con el código...

theNestruo
22/02/2006, 01:48
Mi granito de arena (más vale tarde que nunca)... Es para montar, en Windows, Eclipse + DevKitARM + Gamepark SDK.

...para los que aún no hemos saltado a la GP2X :D

fosfy45
22/02/2006, 04:46
Mi granito de arena (más vale tarde que nunca)... Es para montar, en Windows, Eclipse + DevKitARM + Gamepark SDK.

...para los que aún no hemos saltado a la GP2X :D

Joooooooooooder, que alegria verte por aqui amigo; ¿ que es de tu vida ?

Se te echa de menos :brindis:

Espero verte mas a menudo

Saludos.

gonchi_189
09/04/2006, 17:03
hola, queria hacerte una consulta.. las instrucciones que das para instalar el cygwin son para el sistema operativo xp, pero si tengo windows 98 como puedo modificar el path?? (paso k)

gracias! :D

< - >
luego de hacer una simple aplicacion, y luego de hacer click sobre Run/Run Local C/C++ Aplication me aparece "Error launching external scanner info generation".. tendra esto algo q ver con el hecho de no haber modificado el path luego de instalado el cygwin??

Además, mientras escribo palabras "declaradas" en c como haciamos en java y ponerlas en otro color, queda todo igual como si interpretara lo q escribo :confused: :confused:

espero que alguien pueda ayudarme y perdon por ser tan pesado

graicas!

WinterN
09/04/2006, 19:53
Respecto a las variables de entorno en win98, tienes que añadir al autoexec.bat la linea

PATH=C:\cygwin\bin

o si ya existe la declaración del PATH, añadir ;C:\cygwin\bin al final de la misma

gonchi_189
11/04/2006, 05:12
sigo con algunos problemas... cuando intento ejecutar la aplicacion me sale un cartel que dice "launch failed no binaries"..

intente instalar el cygwin nuevamente pero luego de que selecciono los bins en los que mas puedo, comienza a instalar y me dice instalation incomplete, try again? y le dice que si un par de veces pero sigue igual..

gracias

< - >
y ahora cuando abro el eclipse se despliega un error que dice "NO SE ENCONTRO EL ARCHIVO CYGWIN.DLL REQUERIDO" :( :(
alguien sabe que podria estar sucediendo??

muchas gracias

Turbito
09/06/2006, 16:05
Hace poco que tengo la GP32 y quería trastear con la programación, me he bajado de la respuesta de "theNestruo" su tutorial "Tutorial Eclipse+DevKitARM.pdf" pero en el paso en el que dice instalacion de "gamepark_sdk.zip"... ¿Donde puedo encontrar este archivo?, gracias.

Salustian
09/06/2006, 16:24
Hace poco que tengo la GP32 y quería trastear con la programación, me he bajado de la respuesta de "theNestruo" su tutorial "Tutorial Eclipse+DevKitARM.pdf" pero en el paso en el que dice instalacion de "gamepark_sdk.zip"... ¿Donde puedo encontrar este archivo?, gracias.

http://www.devkitpro.org/gamepark_sdk.zip

Un saludo.

Turbito
09/06/2006, 19:30
Gracias, ya he terminado el tutorial pero me falta el ejemplo que mencionan para comprobar que todo va perfecto... ¿Donde puedo encontrar los fuentes del ejemplo "versión WIP de Crush!"?, gracias de nuevo.

< - >
Otra cosa, me he intentado hacer con otro ejemplo para probar y al compilar utilizando el "Make Target (all)" surge en la pantalla de la consola el siguiente error ¿como puedo solucionarlo?, gracias.

make -k all
MAKE Version 5.2 Copyright (c) 1987, 1998 Inprise Corp.
Incorrect command line argument: -k

NOTA: Lineas más abajo aparece como ayuda los parámetros y por lo visto existe un -K (mayúscula) ¿Es eso y donde lo cambio?

theNestruo
09/06/2006, 22:10
Hola.

Los fuentes de la versión WIP de Crush! no están disponibles publicamente. De momento de Crush! sólo ha habido una o dos betas privadas, y los fuentes no creo que los publique hasta que no saque una beta pública (esperaba haberlo hecho ya, pero ando agobiaísimo con el curro). Lo siento.

El make que trae mi MinSYS (que sí que funciona el -k) es el siguiente:



C:\GP32Dev\MinSYS10\bin>make --ver
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for i686-pc-msys
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

Report bugs to <bug-make@gnu.org>.


C:\GP32Dev\MinSYS10\bin>


Prueba a cambiar en "Window -> Preferences", sección "C/C++ -> Make -> New Make Project", pestaña "Make Builder", grupo "Build Settings", el checkbox "Stop on first build error", que debería estar marcado y puede tener que ver con el parámetro -k (o --keep-going, que dice literalmente "Keep going when some targets can't be made.").

Si tienes la misma versión que yo (MinSYS10) puede que te esté cogiendo otro make que aparezca antes en el path. Prueba a hacerte un goEclipse.bat que te meta el path al MinSYS10 *antes* de lo demás:



set path=%path%;C:\GP32Dev\MinSYS10\bin;C:\GP32Dev\too ls
start eclipse


Un saludo, Nés.

Turbito
09/06/2006, 22:32
Gracias, lo probaré en casa por cierto, está muy potable el tutorial. Sobre "WIP de Crush!" aunque no estén los fuentes diponibles, me has despertado la curiosidad ¿donde puedo leer sobre qué es? y ¿donde puedo encontrar otro fuente para comprobar el entorno instalado?. Gracias

theNestruo
15/06/2006, 23:56
Hola de nuevo.

Crush! es un juego que estoy desarrollando, lo de WIP es por "Work in Progress". No hay información de él por (casi) ningún lado, aparte de este hilo, en mi ordenador (lógicamente) y lo poco que se ha hablado en #retrodev (en irc-hispano.org). Me gustaría sacar a la luz pública una versión presentable en breve, pero últimamente estamos de crunch-time en crunch-time en el curro y no tengo todo el tiempo que quisiera (ayer he salido a la 1:30am de la mañana... desde las 9:00am; ¡no te digo ná y te lo digo tó!).

Busca en la SDK oficial en la carpeta examples (yo tengo una SDK que es la AllInOne v2.1.x, lo que pasa es que ahora mismo no recuerdo de donde la saqué). El ex001 ya tiene código que funciona.

Por si acaso no la encuentras, te pego aquí gpmain.c (y gpmain.h, aunque no haría falta) de ese mismo ejemplo:


#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpmain.h"

GPDRAWSURFACE gpDraw;

void GpMain(void *arg)
{
GpLcdSurfaceGet(&gpDraw, 0); //creates LCD surface

GpRectFill(NULL, &gpDraw, 0, 0, gpDraw.buf_w, gpDraw.buf_h, 0xff); //filles surface with white color

GpSurfaceSet(&gpDraw); //sets gpDraw as primary surface

if ( !(GPC_LCD_ON_BIT & GpLcdStatusGet()) ) GpLcdEnable(); //optional. this line may be omitted because the LCD is turned on by default

GpRectFill(NULL, &gpDraw, 120, 60, 80, 80, 0xe0); //draws on surface a red box with size 80 * 80

while(1)
;
}



#ifndef __gpmain_h__
#define __gpmain_h__

void GpMain(void *arg);

#endif /*__gpmain_h__*/


Suerte! :)

fran_memo
11/07/2008, 17:43
hola queria saber si alguien me puede ayudar porque tengo un problemita yo hace poco instale todo como para poder empezar a usar la libraria sdl pero cuando puse un programa para probarlo no me anduvo el problema es que no reconoce no se porque el main() el error que salta es:
D:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../libmingw32.a(main.o):main.c: undefined reference to `WinMain@16'
esa es la descripcion como veran yo uso el mingw con elcipse
y el codigo es el siguiente:


#include<stdio.h>


#include<SDL/SDL.h>


void imprimir_rectangulo (SDL_Surface *screen, int x, int y)
{
SDL_Rect rect = {x, y, 50, 50};
Uint32 a = SDL_MapRGB(screen->format, 255, 200, 100);

SDL_FillRect(screen, &rect, a);
SDL_UpdateRect(screen, rect.x, rect.y, rect.w, rect.h);
}

int main(int argc, char *argv[]) // como ves aca el main no esta en negrita no se porque
{ // no se pone eso es una ran intiga si le saco el #include<SDL/SDL.h>
SDL_Surface *screen; // lo pone.
SDL_Event event;

if (SDL_Init(SDL_INIT_VIDEO) == -1)
{
printf("Error: %s\n", SDL_GetError());
return 1;
}

screen = SDL_SetVideoMode(320, 240, 16, SDL_SWSURFACE);

if (screen == NULL)
{
printf("Error: %s\n", SDL_GetError());
return 1;
}

SDL_WM_SetCaption("Ejemplo básico", NULL);

imprimir_rectangulo(screen, 20, 30);

while (SDL_WaitEvent(&event))
{
if (event.type == SDL_QUIT)
break;
}

SDL_Quit();
return 0;
}


bueno espero que alguien me pueda ayuda asique GRACIAS!

hardyx
14/07/2008, 00:46
fran_memo, creo que tu est&#225;s programando para la GP2X, en ese caso no uses el SDK de la GP32. El error que te da es porque tienes que incluir la librer&#237;a libSDLmain, que implementa la funci&#243;n WinMain.

Suerte con la programaci&#243;n.

carlos.mx
26/10/2011, 23:31
Donde esta la otra parte del Continuara?

pakoito
27/10/2011, 00:02
Donde esta la otra parte del Continuara?
En la zona VIP. Necesitas 20 mensajes en el foro para verlo.

deivid87mad
10/02/2012, 13:01
He llegado hasta lo escrito en este post pero sigue sin reconocerme stdlib ni stdio alguien puede echarme una mano? Gracias