[ Foro de Pascal ]

compilacion cruzada

10-Aug-2013 20:12
juan carlos rebate
5 Respuestas

buenas nacho, sigo con los ejercicios y me di cuenta que el editor permite indicar al compilador que haga compilacion cruzada pero me da error compilacion fallida, pero en la documentacion dice que si se puede, que hago mal? intento de windows a linux tengo el 2.6.2


11-Aug-2013 19:51
Nacho Cabanes (+84)

Puede que te falte alguna biblioteca adicional. Yo sé que GCC permite compilación cruzada, pero nunca lo he intentado, y me parece algo más factible en el sentido contrario: compilar desde Linux (que es el sistema "nativo" de GCC) para Windows, en vez de desde Windows (que es un "port" y puede no tener todas las posibilidades de la versión original) para Linux.

Para desarrollar para Linux, a mí lo que más cómodo me resulta es usar un ordenador anfitrión con Windows y una máquina virtual Linux creada con VirtualBox, que te permite compartir carpetas o incluso copiar y pegar entre la máquina real y la máquina virtual.


12-Aug-2013 17:32
juan carlos rebate

como que gcc? freepascal no estaba creado en pascal? osea que tenia yo razon al decir que cuando los detectores me dicen que no es pascal sino que es mingw es cierto es c y no pascal, entonces no me conviene aprender pascal sino c que es con el que se crea todo, tiempo perdido


13-Aug-2013 10:09
Nacho Cabanes (+84)

Cierto, hay versiones de FreePascal que también permiten compilación cruzada, pero es algo que no he probado. Siempre uso la versión nativa.

Lo de GCC ha sido un lapsus mío: al hablar de compilación cruzada he dado por sentado que hablabas de C, no es algo que la gente suela hacer en Pascal.

En cualquier caso, mi recomendación sería la misma: usa una máquina virtual de Linux y compila desde ella. Si desarrollas para Linux, en algún momento tendrás que probarlo en Linux, así que no es un gran esfuerzo instalar también el compilador.

Y eso de "tiempo perdido" es muy discutible. Por una parte, eso de que "con C se crea todo" no es cierto. C está cada vez más relegado a programación a nivel de sistema, pero para aplicaciones de usuario es improductivo y propenso a errores. Las aplicaciones reales se tienden a hacer con C++, Java, C#, PHP, VB.net, Python...  Por otra parte, Pascal hoy en día es un lenguaje poco extendido para desarrollar grandes aplicaciones (el número 14 según el índice TIOBE), pero sigue siendo un buen lenguaje para empezar a aprender.

Si quieres saltar a un lenguaje "tipo C", yo te recomendaría C#, que es un lenguaje moderno y orientado al mundo real, antes que C, que tiene más de 40 años y es incomodísimo para muchas tareas habituales, como el manejo de cadenas de texto.


13-Aug-2013 17:13
juan carlos rebate

pero y si quisiera desarrollar para mac o symbian tambien? no puedo instalar eso en un pc por eso lo de cruzada, c# es complicado por la licencia no se puede distribuir las aplicaciones sino pagas miles de euros por la licencia, ademas es facil descompilarlo, no es nativo y es lento, en cuanto a mono es algo pobre no admite net 4, c++ es un subconjunto de c no? osea que c++ se podria usar para lo mismo que se usa c, de hecho hay programas que llegan a hacer identicas cosas que programas c.


13-Aug-2013 22:11
Nacho Cabanes (+84)

Veamos... hay dos partes claramente diferenciadas en la vida de un programador: la etapa de aprendizaje (inicial) y la etapa de desarrollo de proyectos reales.

En la etapa inicial, es interesante usar un lenguaje que te permita practicar un poco de todo, asimilar la lógica de descomposición de un problema en subproblemas y la forma de analizar y resolver esos subproblemas "relativamente sencillos". Por ejemplo, hoy en día no me parece razonable usar ensamblador como lenguaje para empezar a programar, salvo que tengas la certeza absoluta de que vas a programar sólo a nivel de acceso directo al hardware.

Cuando estás en tu vida profesional, cada proyecto es un mundo. Es muy habitual no pasar toda tu vida con la misma herramienta, sino cambiar cada pocos años, pero una vez que "sabes programar", el aprender una nueva herramienta es poco más que cambiar la sintaxis y entender unas pocas peculiaridades.

Puedes perfectamente empezar con C#, y luego usar Xamarin si quieres desarrollar para Mac o para iOS (Symbian está cayendo en picado), o estudiar las diferencias con Objective C (que es un tanto peculiar) si vas a hacer aplicaciones Mac con sus herramientas nativas, o aprender las (pocas) diferencias con Java si vas a trabajar en Android, o con PHP si vas a hacer aplicaciones web. En esta profesión tienes que asumir que tendrás que reciclarte con frecuencia. El empezar con un lenguaje u otro puede ayudar que avances más rápido al principio y a que te suenen conocidas más o menos cosas cuando te recicles, pero no suele suponer una diferencia crítica. No te ciegues con el "¿y qué haré cuando...?"  Porque tendrás que hacer lo mismo que hacemos todos: actualizarte y tratar de escoger la herramienta más adecuada para ese tipo de proyecto.







(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)