Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Sistemas operativos > Linux
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 17-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo tuve algunos problemas para compilarlo con el gtk2 por una librería libgdm, o algo así, luego reviso. El problema es que si estaba instalada pero tenía un nombre distinto o por la versión. El caso es que usé el truco del enlace simbólico y funcionó.

Ahora, en principio no tiene uno que ser root para compilar a menos que instales el lazarus como root en las carpetas /usr/... De hecho, nunca tuve que hacer un su para instalar lazarus.

Pero sí que es lento. Quizá porque a fin de cuentas no estoy enlazando con las bibliotecas correctas, pero tratar de acomodar un TNoteBook es cosa de jalarse los pelos. La verdad es que quiero probarlo tan sólo por no dejar pero no me convence nada.

No he tenido mucho tiempo de investigar, pero a mi me entusiasma la idea de python. Al menos los ejemplos de wxPython se ven sensacionales, con controles de todo tipo y muy vistosos y nada de lentos. Pero además con python pueden encontrarse múltiples frameworks tanto para escrtorio como para web y mucho código puedes reusarlo en uno y otro lado.

// Saludos
Responder Con Cita
  #22  
Antiguo 17-04-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por roman
Pero sí que es lento. Quizá porque a fin de cuentas no estoy enlazando con las bibliotecas correctas, pero tratar de acomodar un TNoteBook es cosa de jalarse los pelos. La verdad es que quiero probarlo tan sólo por no dejar pero no me convence nada.
// Saludos
Debe ser por las bibliotecas, por que en mi pc con centos corre como seda :P. y no tengo ningún problema para compilar :P.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #23  
Antiguo 17-04-2007
Avatar de kovaski
kovaski kovaski is offline
Miembro
 
Registrado: oct 2006
Ubicación: Valencia
Posts: 39
Poder: 0
kovaski Va por buen camino
Cita:
Empezado por poliburro
Vaya, que gusto, esto está poniendose cada vez más interesante :P.

Sería muy bueno participar en el desarrollo de lazarus no cren :P ?
Estoy contigo.

Aunque nunca he colaborado en ningun proyecto de esta indole. Sera cuestión de probar.

Saludos.
Responder Con Cita
  #24  
Antiguo 17-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por poliburro
Sería muy bueno participar en el desarrollo de lazarus no cren :P
Hace tiempo que quiero participar en algún proyecto, pero la verdad no sabría por donde empezar ...
Cita:
Empezado por roman
Ahora, en principio no tiene uno que ser root para compilar a menos que instales el lazarus como root en las carpetas /usr/... De hecho, nunca tuve que hacer un su para instalar lazarus.
Yo lo instale usando los paquetes .deb asi que no me quedo mas remedio que hacerlo como root.
Cita:
Empezado por roman
... pero a mi me entusiasma la idea de python. Al menos los ejemplos de wxPython se ven sensacionales, con controles de todo tipo y muy vistosos y nada de lentos. Pero además con python pueden encontrarse múltiples frameworks tanto para escrtorio como para web y mucho código puedes reusarlo en uno y otro lado.
A mi también, ¿conoces algún IDE para python? ¿alguno que permita diseñar formularios? yo solo conozcoo Glade.
Responder Con Cita
  #25  
Antiguo 17-04-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Estaría muy bien ayudar en Lazarus, aunque pasa como con todo: el maldito tiempo

Última edición por Casimiro Notevi fecha: 18-04-2007 a las 00:41:34.
Responder Con Cita
  #26  
Antiguo 18-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Sigo opinando que todavía no se trabaja con la misma rapidez que en Delphi, pero no deja de ser interesante. Ahí va mi primera aplicación en lazarus para linux, para quien este aburrido ...

PD: Utilizar "Ejecutar -> Construir todo" antes de ejecutarlo, ya que tuve que borrar los archivos .o para que el zip midiera menos de 29kb
Archivos Adjuntos
Tipo de Archivo: zip sudoku.zip (11,3 KB, 40 visitas)
Responder Con Cita
  #27  
Antiguo 23-04-2007
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Smile

Los Programas en Lazarus quedan muy pesados, ¿como hago para que queden mas livianos?, ¿en linux con que extencion quedan?, ¿los programas en linux quedan independientes como en windows? y donde puedo descargar el Ubuntu?; gracias y espero que puedan responder mis dudas.

Última edición por mightydragonlor fecha: 23-04-2007 a las 20:09:20.
Responder Con Cita
  #28  
Antiguo 23-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por mightydragonlor
Los Programas en Lazarus quedan muy pesados, ¿como hago para que queden mas livianos?
Para que los programas queden mas livianos en el menú "Proyecto / Opciones del compilador / Enlazado" escoge la opción "Enlazar pequeña". El ejecutable sera mas pequeño, pero aun así, seguirá siendo bastante grande comparados con los que genera delphi.

Cita:
Empezado por mightydragonlor
¿en linux con que extencion quedan?
Si te refieres al tamaño, siguen siendo grandes Si te refieres a la extension del nombre del ejecutable (.exe en windows), en linux no tiene.

Cita:
Empezado por mightydragonlor
¿los programas en linux quedan independientes como en windows?
Hasta donde yo se si, puede que necesites instalar gtk ...

Cita:
Empezado por mightydragonlor
y donde puedo descargar el Ubuntu?
Lo puedes descargar de aquí http://www.ubuntu.com/ incluso hasta hace poco te enviaban un cd a casa por correo si no querías descargarlo, no se si lo siguen haciendo.
Responder Con Cita
  #29  
Antiguo 23-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, pero esto de enlazar pequeña (que en realidad es pasar de gigante a enorme ) ha de tener alguna contra ¿no? Esto es, no sé si fuera similar al "Build with runtime packages" de Delphi. ¿Has probado, si el ejecutable corre bien en un linux sin lázarus instalado?

// Saludos
Responder Con Cita
  #30  
Antiguo 23-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por roman
Bueno, pero esto de enlazar pequeña (que en realidad es pasar de gigante a enorme ) ha de tener alguna contra ¿no? Esto es, no sé si fuera similar al "Build with runtime packages" de Delphi. ¿Has probado, si el ejecutable corre bien en un linux sin lázarus instalado?
A provechamos para responder 2 preguntas, ya que antes preguntaron por ahí las librerías que usaban las aplicaciones de lazarus.

Compilado con la opcion de "Enlazar pequeña" el programa del sudoku utiliza estas librerias.
Código:
linux-gate.so.1
libX11.so.6
libgdk_pixbuf-2.0.so.0
libgtk-x11-2.0.so.0
libgdk-x11-2.0.so.0
libgobject-2.0.so.0
libglib-2.0.so.0
libgthread-2.0.so.0
libgmodule-2.0.so.0
libpango-1.0.so.0
libpthread.so.0
libatk-1.0.so.0
libdl.so.2
libc.so.6
libXau.so.6
libXdmcp.so.6
libm.so.6
libpangocairo-1.0.so.0
libXfixes.so.3
libcairo.so.2
libfontconfig.so.1
libXext.so.6
libXrender.so.1
libXinerama.so.1
libXi.so.6
libXrandr.so.2
libXcursor.so.1
librt.so.1
/lib/ld-linux.so.2
libpangoft2-1.0.so.0
libfreetype.so.6
libz.so.1
libpng12.so.0
libexpat.so.1
Y compilado sin la opción "Enlazar pequeña" usa exactamente las mismas, eso si pasa de 7 Megas o 6 Megas ... tampoco es que quede muy "pequeña"
Responder Con Cita
  #31  
Antiguo 23-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No entendí. ¿Cuál fue la respuesta?

// Saludos
Responder Con Cita
  #32  
Antiguo 23-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por roman
No entendí. ¿Cuál fue la respuesta?
Tu preguntaste:
Cita:
Empezado por roman
¿Has probado, si el ejecutable corre bien en un linux sin lázarus instalado?
Si utilizan las mismas librerias, en principio, se podran ejecutar en los mismos sistemas. Asi que si una aplicacion compilada sin esa opcion puede ejecutarse sin estar lazarus instalado, supongo que una compilada con esa opcion tambien lo hara. No tengo ningun linux sin lazarus para probar, pero mi razonamiento me parece correcto, ¿o estoy equivocado?
Responder Con Cita
  #33  
Antiguo 23-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Supongo que sí. ¿Cómo haces para saber las librerías que usa?

// Saludos
Responder Con Cita
  #34  
Antiguo 23-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por roman
¿Cómo haces para saber las librerías que usa?
Usando el comando ldd
Cita:
Empezado por Pagina man
NAME
ldd - print shared library dependencies

SYNOPSIS
ldd [OPTION]... FILE...

DESCRIPTION
ldd prints the shared libraries required by each program or shared
library specified on the command line.
Por otro lado, podemos probar, Aquí dejo el programa del sudoku compilado con la opción "Enlazar pequeña" y gtk2. Ahora alguien sin lazarus instalado puede hacer la prueba
http://rapidshare.com/files/27544176/sudoku.zip.html
Responder Con Cita
  #35  
Antiguo 23-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Estaba a punto de decirte que iba a hacer esa prueba, pero en cierta forma, no tiene mucho sentido. Es que estoy seguro que no va a correr, pero no porque esté o no lázarus instalado, sino que muchas de esas librerías son requeridas por el propio lazarus. En algunos sistemas ya estarán y en otros no, dependiendo de qué cosas tengamos ya instaladas.

Me confunde un poco este tema. Es que, de entrada, si hay una opción "haz el ejecutable más pequeño" es que debe haber alguna desventaja, o sino, ¿por qué no se usa como opción por defecto, o mejor dicho, por qué si quiera existe el enlazado grande? Por ello preguntaba lo de si sería similar al delphi.

// Saludos
Responder Con Cita
  #36  
Antiguo 23-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por roman
Me confunde un poco este tema. Es que, de entrada, si hay una opción "haz el ejecutable más pequeño" es que debe haber alguna desventaja, o sino, ¿por qué no se usa como opción por defecto, o mejor dicho, por qué si quiera existe el enlazado grande? Por ello preguntaba lo de si sería similar al delphi.
Lo que hace es usar la opción -XX de freepascal, que al parecer activa la directiva FPC_LINK_SMART, que me supongo que, y ya estoy suponiendo mucho , que utiliza algún tipo de optimización a la hora de compilar.

Por cierto usando strip, si que podemos reducir el tamaño del ejecutable. El programa del sudoku baja de 6 a 2 Megas.
Código:
strip -s sudoku
Responder Con Cita
  #37  
Antiguo 23-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
En el wiki de lazarus aclaran lo del Smart link
Cita:
Smartlinking

The base principle of smartlinking is simple and commonly known: don't link in what is not used. This of course has a good effect on binary size.

However the compiler is merely a program, and doesn't have a magic crystal ball to see what is used, so the base implementation is more like this
The compiler finely divides the code up in so called "sections".
Then basically the linker determines what sections are used using the rule "if no label in the section is referenced, it can be removed.

There are some problems with this simplistic view:
virtual methods may be implicitely called via their VMTs. The GNU linker can't trace call sequences through these VMTs, so they must all be linked in;
tables for resource strings reference every string constant, and thus all string constants are linked in (one reason for sysutils being big).
symbols that approachable from the outside of the binary (this is possible for non library ELF binaries too) must be kept. This last limitation is necessary to e.g. avoid stripping exported functions from shared libraries..
Another such pain point are published functions and properties. References to published functions/properties can be constructed on the fly using string operations, and the compiler can't trace them. This is one of the downsides of reflection.
Published properties and methods can be resolved by creating the symbolnames using stringmanipulation, and must therefore be linked in if the class is referenced anywhere. Published code might in turn call private/protected/public code and thus a fairly large inclusion.

Another important sideeffect that is logical, but often forgotten is that this algoritm will link in everything referenced in the initialization and finalization parts of units, even if no functionality from those units are used. So be careful what you USE.

Anyway, most problems using smartlinking stem from the fact that for the smallest result FPC generally requires "compile with smartlinking" to be on WHEN COMPILING EACH AND EVERY UNIT, EVEN THE RTL

The reason for this is simple. LD only could "smart" link units that were the size of an entire .o file until fairly recently. This means that for each symbol a separate .o file must be crafted. (and then these tens of thousands of .o files are archived in .a files). This is a time (and linker memory) consuming task, thus it is optional, and is only turned on for release versions, not for snapshots. Often people having problems with smartlinking use a snapshot that contains RTL/FCL etc that aren't compiled with smartlinking on. Only solution is to recompile the source with smartlinking (-CX) on. See buildfaq for more info.

In the future this will be improved when the compiler will emit smartlinking code by default, at least for the main targets. This is made possible by two distinct developments. First, the GNU linker LD now can smartlink more finely grained (at least on Unix) using --gc-sections, second the arrival of the FPC internal linker (in the 2.1.1 branch) for all working Windows platforms (wince/win32/win64). The smartlinking using LD --gc-sections still has a lot of problems because the exact assembler layout and numerous details with respect to tables must be researched, we often run into the typical problem with GNU development software here, the tools are barely tested (or sometimes not even implemented, see DWARF standard) outside what GCC uses/stresses.

The internal linker can now smartlink Lazarus (17 seconds for a full smartlink on my Athlon64 3700+ using about 250MB memory) which is quite well, but is windows only and 2.1.1 for now. The internal linker also opens the door to more advanced smartlinking that requires Pascal specific knowledge, like leaving out unused virtual methods (20% code size on Lazarus examples, 5% on the Lazarus IDE as a rough first estimate), and being smarter about unused resourcestrings. This is all still in alpha, and above numbers are probably too optimistic, since Lazarus is not working with these optimizations yet.
Enlace al wiki: http://wiki.lazarus.freepascal.org/Size_Matters
Responder Con Cita
  #38  
Antiguo 23-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Muy interesante lo que citas. No termina de convencerme del todo su "defensa" de ejecutables grandes pero ciertamente da puntos a pensar e ilustra lo que sucede.

Me encantó esta frase:

Cita:
The whole UPX cult is a funny thing that originates in a mindless pursuit of minimal binary sizes


// Saludos
Responder Con Cita
  #39  
Antiguo 15-05-2007
davidvs davidvs is offline
Registrado
 
Registrado: may 2007
Posts: 1
Poder: 0
davidvs Va por buen camino
Corriendo perfectamente!!

Cita:
Empezado por seoane
Usando el comando ldd


Por otro lado, podemos probar, Aquí dejo el programa del sudoku compilado con la opción "Enlazar pequeña" y gtk2. Ahora alguien sin lazarus instalado puede hacer la prueba
http://rapidshare.com/files/27544176/sudoku.zip.html
Hola a todos, aprovecho la ocasion para estrenarme en el foro!!

Para vuestra informacion, el programa funciona perfectamente en una Ubuntu 7.04 recien instalada! (eso si, el ejecutable es insultantemente enorme -¿podria ser ke llevara todas las librerias compiladas a dentro????)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Centos 5.0 liberado poliburro Noticias 0 13-04-2007 04:46:25
Primeros Screenshots de Delphi 2010 para Win64!!!! xander La Taberna 3 27-03-2007 01:28:52
Disponible Live Cd Centos 4.4 poliburro Linux 11 19-03-2007 19:36:37
[Lazarus] GTK+-devel en SUSE. problema instalar lazarus de esa libreria. sakuragi Lazarus, FreePascal, Kylix, etc. 3 28-09-2006 03:31:09
CentOS release 4.3 Aser Linux 1 17-05-2006 23:30:06


La franja horaria es GMT +2. Ahora son las 01:42:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi