Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Como se hace un proyecto en linux?

Iniciado por kokorico, 10 de Septiembre de 2010, 03:24:03 PM

« anterior - próximo »

kokorico

Hola,
tengo una duda sobre como configurar un entorno para programar en linux. Vaya por delante que estoy acostumbrado al entorno de Visual Studio en C++ y al hecho de añadir librerias en el proyecto.

Para linux, me estoy basando en CMake, pero hay algunas cosas que creo que no he comprendido bien. Primero: donde van las librerias? Esta claro que la forma mas comoda es usando apt-get, pero esas librerias quedan en los local y shares de tu linux. Entonces, como se distribuyen despues los programas?

Tengo mucho mas claro el concepto windows, donde todas las libs van a un folder, donde linkas estatico para que vaya al codigo directamente o dinamico, y entonces distribuyes las dlls. Eso se puede hacer en linux? Yo estuve probando con lua + luabind. Linko bien con luabind pero despues me dice que necesita lua. Y lua parece que solo le sirve si esta en /usr/local/...

Alguien me puede dar algun consejo de como montar un entorno de programacion? Cual es el ciclo de trabajo?

Muchas gracias.

fjfnaranjo

#1
Pues..., por desgracia no es nada sencillo de explicar.

En primer lugar, desarrollar para cualquier *nix, supone comprender unos cambios en cuanto a la forma de organizar las cosas que son considerables.

Entre estos cambios, por ejemplo, está el hecho de que el enlazado estático es muy poco común. Las librerías suelen considerarse proyectos aparte, que cuando tienen cierta fama, son gestionadas directamente por las distribuciones (a saber, GNU/Debian o Ubuntu, Fedora, CentOS, entre otras). Por lo que la versión de las librerías de la que van a disponer los usuarios de los programas varia bastante, y hay que ser flexible para adaptarse bien a ello.

Los mecanismos de construcción de programas también tienen tela. Normalmente el código va acompañado de archivos que ayudan a su compilación en diversos entornos, y considerando diversas configuraciones de librerías (esto se llama "make"). Si no piensas distribuir el código de tu aplicación, te puedes olvidar de esto un poco, pero no puedes asegurar un grado de interoperatibilidad tan alto como otras aplicaciones de la plataforma.

La instalación y configuración de los programas tampoco es común, para quienes están acostumbrados a los sistemas de M$. La configuración suele guardarse en directorios ocultos dentro de la carpeta de cada usuario, la instalación de los programas se supone que debe seguir un estándar conocido como FHS, y configurar cosas como los accesos directos del programa y similares, implica mucho trabajo porque hay varios gestores de escritorio diferentes (GNOME, KDE, Xfce, etc).

En definitiva, son bastantes cosas como para comentarlo por aquí.

Si quieres empezar a liarte con el tema, te recomiendo que uses Code::Blocks, que te soluciona parte de estas cosas, e intentes llevar un proyecto pequeño (pong y similares) desde un Windows y un GNU/Linux. Ya sólo meterle sonido será un mundo, así que usa alguna librería multiplataforma como SDL que te solucione esa y otras cosas. Si quieres usar 3D, pues usa SDL + OpenGL.

Cuando hayas sacado algo "construible" y "usable" de esta forma, ya habrás superado muchos de los inconvenientes más importantes y básicos, y podrás empezar con otro proyecto más ambicioso y sin la tutela de Code::Blocks. Puedes basarte para aprender en el trabajo de otros proyectos.

En fin, espero que no te desanime el tema. Te hablaría de las maravillas del software libre, y de GNU/Linux, y del por qué de que todo sea tan "lioso", pero no es asunto de este hilo, y no quiero iniciar un flamewar :P Yo actualmente sólo arranco el Windows 7 para juegos y alguna que otra aplicación suelta, pero mi entorno principal de trabajo/multimedia es un Debian GNU/Linux Squeeze con Fluxbox ;), así que si tienes preguntas -concretas- hazlas por aquí y te puedo echar una mano (deja claro en el título del post que son sobre desarrollar en GNU/Linux). También hay otros usuarios por aquí que te podrán ayudar.

Un saludo y suerte!
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

Hechelion

Una única aclaración que agregaría, por si buscas información sobre los entornos, es que es KDE y XDE

fjfnaranjo

fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.