Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Caster en 13 Octubre 2012, 21:23 pm



Título: Cambios de Windows a Linux
Publicado por: Caster en 13 Octubre 2012, 21:23 pm
Pues acabo de instalar Ubuntu en mi PC, junto con Windows, y ya probe a hacer el tipico Hola Mundo y a compilarlo desde Linux, y la verdad me gusta eso de que el compilador ya venga con el sistema, no llevo mucho tiempo con esto de la programacion, la verdad es que de C he leido hasta funciones y poco mas, y queria saber las diferencias que hay de programar en Linux a hacerlo en Windows, quiero decir que voy a seguir programando para Windows, pero poco a poco con el tiempo quiero deshacerme de el por completo.

Saludos


Título: Re: Cambios de Windows a Linux
Publicado por: yoxter en 13 Octubre 2012, 22:39 pm
La Diferencia basicamente es que no pudes usar bibliotecas que solo esten disponibles para windows.
la estructura de directorios es muy diferentes, windows usa el compilador de visual  estudio(tambien podes usar gcc en windows) y linux gcc y clang(este ultimo me gusta bastante) y si vamos por los IDES's yo no tadavia no he probado visual estudio vengo de XCODE y no me gusta el codeblocks a si que uso la linea de comandos y kate para programar y de vez en cuando geany.

la gran ventaja es que el codigo que hagas es linux es realmente muy portable con algunos cambios menores enlazando las librerias podes portarlos facilmente a osx, BSD y  windows.


Título: Re: Cambios de Windows a Linux
Publicado por: Foxy Rider en 15 Octubre 2012, 18:44 pm
Citar
y la verdad me gusta eso de que el compilador ya venga con el sistema

Depende, eso no sucede en todas las distros ... algunas tienen meta paquetes como build-essential que te "tira" lo más básico para compilar;

Citar
no llevo mucho tiempo con esto de la programacion, la verdad es que de C he leido hasta funciones y poco mas

Suficiente como para que empieces a caminar :D

Citar
y queria saber las diferencias que hay de programar en Linux a hacerlo en Windows, quiero decir que voy a seguir programando para Windows, pero poco a poco con el tiempo quiero deshacerme de el por completo.

En principio, los estándares son los mismos para lo que es librerías de C/C++.
En la práctica, si salís por fuera de lo estándar y querés interactuar con el sistema ... bueno, tenés APIs diferentes en Linux que en Windows (por ej POSIX/X/Qt/Gtk/OpenAL/SePuedePonerMasEnmarañadoDependiendoDequeHagas/etc vs la API propia de Windows)
Pero también en la práctica, si querés ser multiplataforma vas a tratar de reinventar la rueda lo menos posible y elegir librerías base que corran en la mayor cantidad de sistemas posibles y a su vez sean eficientes ... quedando como última opción el preprocesador para ver qué plataforma es y compilar un código para una u otra respectivamente.

Hay cositas que Microsoft y su poco amor a los estándares (guarda, que GNU tampoco se salva de esa, y es algo que critico mucho como usuarix de Clang y que un poco mencioné en un post de un blog sobre que GNU habilita extensiones no estándar por default) puede generarte alguna molestia en el código (como esta tontera que le corregí a una amistad en github (https://github.com/facunvd/GnuPlot-Testing/issues/1)) .. pero no pasa de eso: una pequeña molestia.

Lo óptimo sería que no dejes de soportar ninguna plataforma ... podés compilar (cross-compile) código hecho para Windows, correrlo, depurarlo y testearlo sobre Linux con las herramientas extras que tenés (como valgrind)
Ese ejercicio vá a mejorar mucho la calidad de tu código como un efecto colateral.

Por lo pronto eso ... cualquier duda tirá un post, normalmente no paso por este subforo, pero si veo que algún hilo tiene en el título "linux" o veo un post de un usuario que sé que está aprendiendo a programar linux, trato de ayudar en la medida de que me dé el tiempo.

Suerte !


Título: Re: Cambios de Windows a Linux
Publicado por: Caster en 15 Octubre 2012, 18:56 pm
Depende, eso no sucede en todas las distros ... algunas tienen meta paquetes como build-essential que te "tira" lo más básico para compilar;

Ubuntu 12.04

Pues mi idea era programar para Linux únicamente, deshacerme de Windows para todo, totalmente. Aunque me parece interesante eso del cross-compile, leere sobre eso.

Muchas gracias