Compilar en Ubuntu

Re: Compilar en Ubuntu

Postby Antonio Linares » Tue Dec 22, 2009 8:17 pm

Parece que te falta añadir la libreria libm.a de Linux que da soporte a esas funciones matemáticas:

Añade -lm en las librerias a enlazar

http://linux.die.net/man/3/pow

Link with -lm
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42127
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Compilar en Ubuntu

Postby Verhoven » Tue Dec 22, 2009 9:03 pm

Es lo que tiene la programacion, no te toca el gordo de la Lotería, pero ve uno que sale "hola mundo" y con eso se siente feliz.

HA FUNCIONADO AL FIN ANTONIO con esta última indicación tuya.

En estos días, dejaré en el foro, dime si prefieres en un hilo nuevo o en este mismo un mensaje con todo lo necesario, tal vez en exceso, pues me parece que hay librerías de las que he(hemos) incluido en el sh que tal vez no harían falta para compilar el "hola mundo".

En cualquier caso, no quiero dejar de agradecerte la ayuda y también para reprochar a los autores de Harbour por la escasez de información al respecto, tantos años de trabajo para realizar el compilador y se patina cuando ha de darse la facilidad a todo aquel que se quiera asomar a esta extraordinaria herramienta de programación.

A lo mejor parece más una cabezonada que otra cosa lo de hacer un "hola mundo" en linux. Incluso no se si Linux llegará o no a eliminar al resto de SO o si habrán de vivir todos juntos según que usos se les quiera dar, pero si se quieren tener opciones en todas las plataformas mejor facilitar al máximo el acceso a las mismas.

A mi lo de Linux me atrae porque me parece que:
1.- Es libre y eso de la libertad me gusta, más cuando parece que cada vez estamos más controlados por todo y en todo.
2.- Al ritmo que va Win, ya no sabe uno si lo que instala es un sistema operativo o un gestor de electrodomésticos.
3.- Deberán seguir existiendo ordenadores (y programas) en el sentido "tradicional"=cálculo y gestión de datos, aunque haya menos usuarios y por esto sean "menos rentables".

Saludos y nuevamente, muchas gracias.
Verhoven
 
Posts: 522
Joined: Sun Oct 09, 2005 7:23 pm

Re: Compilar en Ubuntu

Postby Verhoven » Thu Dec 24, 2009 9:17 am

TEXTO REFUNDIDO DE TODO LO ANTERIOR RELATIVO A LAS INSTRUCCIONES PARA INSTALAR HARBOUR EN UBUNTU 9.10
(SOLO PARA MODO CONSOLA)

He hecho lo siguiente:

1º.- Instalar en SVN (Source Version control system):
sudo apt-get install subversion

2º.- Descargar de sourceforge la version de Harbour al directorio harbour-project en el directorio local del usuario que haya ejecutado la siguiente instrucción:
svn co https://harbour-project.svn.sourceforge ... ur-project harbour-project

Esto tarda un ratillo.

3º.- Ahora se compila la versión descargada con el fichero descargado make_gnu.sh, desde el terminal de linux:
i.- Cambiamos al directorio donde está el fichero:
cd ./harbour-project/branches/harbour-1.0

ii.- Cambiamos los atributos de make_gnu.sh para hacerlo ejecutable:
chmod +x ./make_gnu.sh

iii.- Echamos a andar el fichero:
./make_gnu.sh

4º.- Con esto ha quedado compilado el harbour.

5º.- Ahora copiamos lo necesario al arbol de directorios apropiado:
Creamos, colgando de nuestro directorio local la siguiente estructura de directorios:
harbour
/bin
/lib
/include
/doc


(Lo mismo se pordría hacer colgando desde un directorio que tenga acceso para todos los usuarios)

6º.- Copiamos los ficheros:
i.- En /bin el ejecutable que la compilacion de harbour a generado en el directorio: harbour-project/branches/harbour-1.0/source/main/linux/gcc
ii.- En /lib todos los archivos generados en: harbour-project/branches/harbour-1.0/lib/linux/gcc
iii.- En /include todos los archivos generados en: harbour-project/branches/harbour-1.0/include
iv.- En /doc todos los archivos presentes en: harbour-project/branches/harbour-1.0/doc

7º.- Ahora editamos un "programa.prg" básico ( EN EL DIRECTORIO /harbour) como:
function main()
? "Hola Mundo"
return


8º.- Lo compilamos con Harbour haciendo:
./bin/harbour programa.prg -n -I./include
y con esto se genera el fichero programa.c

9º.- Ahora generamos el programa.o con gcc:
gcc programa.c -c -I./include

10.- Linkamos:
gcc programa.o -oprograma -L./lib -Wl,--start-group -lhbcommon -lhbvm -lhbrtl -lhbrdd -lhbmacro -lhblang -lhbcpage -lhbpp -lrddntx -lrddcdx -lrddfpt -lhbsix -lhbusrrdd -lhbct -lgtstd -lhbdebug -lgtcgi -lgtpca -lgttrm -lhbbmcdx -lhbbtree -lhbclipsm -lhbcplr -lhbextern -lhbgt -lhbhsx -lhbmisc -lhbmsql -lhbmzip -lhbnf -lhbnulrdd -lhbpcre -lhbrdd -lhbsqlit3 -lhbtip -lhbtpathy -lhbvpdf -lhbziparc -lhbzlib -lrddado -lxhb -lm -Wl,--end-group

11.- Borramos el programa.c y programa.o:
rm programa.c
rm programa.o

12.- Ejecutamos el ejecutable generado (En Linux no tienen porqué terminar en exe)
./programa

13.- ACOMPAÑO EL FICHERO BUILD.SH equivalente a un BAT para compilar y linkar:
# ./build.sh

clear

if [ $# = 0 ]; then
echo syntax: ./build2.sh file [options...]
exit
fi

echo compiling...
./bin/harbour $1.prg -n -I./include

echo compiling C module...
gcc $1.c -c -I./include

echo linking...
gcc $1.o -o$1 -L./lib -Wl,--start-group -lhbcommon -lhbvm -lhbrtl -lhbrdd -lhbmacro -lhblang -lhbcpage -lhbpp -lrddntx -lrddcdx -lrddfpt -lhbsix -lhbusrrdd -lhbct -lgtstd -lhbdebug -lgtcgi -lgtpca -lgttrm -lhbbmcdx -lhbbtree -lhbclipsm -lhbcplr -lhbextern -lhbgt -lhbhsx -lhbmisc -lhbmsql -lhbmzip -lhbnf -lhbnulrdd -lhbpcre -lhbrdd -lhbsqlit3 -lhbtip -lhbtpathy -lhbvpdf -lhbziparc -lhbzlib -lrddado -lxhb -lm -Wl,--end-group

echo deleting $1.c and $1.o ...
rm $1.c
rm $1.o

echo done!
./$1


Una vez creado hay que darle antes de usarlo atributos de ejecución:
sudo chmod +x build.sh

Luego para generar el ejecutable correspondiente a "programa.prg" hacer:
./build.sh programa

Esto genera el fichero "programa" (sin extensión) que es el ejecutable final.

Espero les sea de utilidad.
Solo una nota más: actualicé mi versión anterior de ubuntu, la 9.04 que iba muy bien y rápida, por la nueva 9.10 hace pocos días y he comprobado que la nueva maneja muy lento las ventanas, por lo que no recomiendo su instalación hasta que se haya corregido esto o bien se sepa como corregir este funcionamiento anómalo.
24/12/2009

Saludos y Feliz Navidad a todos.
Verhoven
 
Posts: 522
Joined: Sun Oct 09, 2005 7:23 pm

Re: Compilar en Ubuntu

Postby Antonio Linares » Thu Dec 24, 2009 11:03 am

gracias :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42127
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Compilar en Ubuntu

Postby Armando Picon » Fri Jan 22, 2010 2:15 am

Recientemente conseguí estas notas para compilar y ejecutar Harbour en Linux Ubuntu. Ya lo he probado y efectivamente pude generar el ejemplo que viene al final de esta nota. Difiere algo respecto a la contribución de Verhoen. En lo que hay que tener cuidado es que durante la instalación si Linux se detiene al intentar instalar "dosemu-freedos" no se preocupen y repitan el comando a partir de "mingw32" en adelante.

Harbour: COMO instalar en LINUX
Como descargar la ultima version de SVN de Harbour del repositorio de Sourceforge y compilarlo
( LINUX )


Una vez que tengas linux funcionando , te recomiendo ubuntu 9.10 ultima version estable, deberas tener acceso a usuario administrador

¿Esto que quiere decir? que puedas utilizar el comando SUDO o sea poder ejecutar comandos desde una terminal linux como si fueras el administrador del sistema .

Si instalaste linux vos mismo y sos el primer usuario, eso quiere decir que tu usuario deberia tener acceso a super user a traves del comando SUDO y tu clave sera la autorizacion para el mismo.

Para probar y con una pc donde tengas linux ya instalado con acceso a internet podrias intentar instalar con un comando los paquetes de software necesarios para compilar harbour en tu sistema

Probemos el siguiente comando:

sudo apt-get update; sudo apt-get install wget cvs rcs build-essential ncurses-dev libslang2-dev tk8.3-dev unixodbc-dev subversion libncurses-dev libx11-dev libgpm-dev firebird2.1-dev libfreeimage-dev libmysqlclient15-dev libpq-dev libqt3-mt-dev liballegro4.2-dev wine dosemu-freedos mingw32 zlib1g-dev libpcre3-dev libncurses-dev libslang2-dev libx11-dev libgpmg1-dev unixodbc-dev libcurl4-gnutls-dev firebird2.1-dev libgd2-xpm-dev libsqlite3-dev libqt4-dev

Estos comandos se deben ejecutar en una terminal que en Ubuntu se puede abrir desde : Aplicaciones -> Accesorios -> Terminal

Este comando te pedira tu clave y luego de pedirte el ok tratara de descargar e instalar las ultimas versiones de los mismos , esto preparara tu sistema
para poder descargar y compilar HARBOUR.

Luego es necesario ejecutar el siguiente comando:

svn co https://harbour-project.svn.sourceforge ... ject/trunk harbour_svn

Donde "harbour_svn" es la carpeta que se creara y donde seran descargados los fuentes actualizados de Harbour.
Una vez que veas que este proceso finalizo , podemos comenzar la compilacion .

Si es la primera vez podemos saltear el primer paso ( sudo make clean) , pero cuando recompiles,
porque bajaste una actualizacion seran necesarios todos los pasos.

Ejecutar : cd harbour_svn ( o el directorio que hayas creado )

luego: cd harbour
sudo make clean
sudo make all
sudo make install

Cada comando llevara un tiempo en ejecutarse y el make all es el que mas tiempo te llevara. una vez que hagas el make install tu sistema estara listo para probar compilar un ejemplo. Para ello abris un editor de textos de tu preferencia y pones el siguiente codigo:

Cabe aclarar que este codigo fue tomado de la pagina de nuestro amigo Italiano Marco Braida


function main()
do while .t.
setcolor("w/n")
clear screen
dummy:="N"
quadro(1,1,10,60)
@ 3,3 say "CIAO MONDO" color "w/r"
@ 4,3 say "Sono harbour ;-)" color "w/b"
@ 5,3 say "Vuoi terminare... ? "
@ row(), col()+1 get dummy picture "@K!"
read
if dummy=="S"
clear screen
quit
endif
@ 8,10 say "Ok non vuoi terminare"
inkey(2)
enddo
return nil

// -----------------------------
function quadro(ri,ci,rf,cf)
@ ri,ci clear to rf,cf
dispbox(ri,ci,rf,cf)
return nil


Este codigo debera ser guardado como hello.prg y luego lo compilaremos desde la terminal linux
usando el siguiente comando:

hbmk2 -lgpm -static hello.prg


Cabe destacar que deberemos estar en el directorio donde guardamos el archivo PRG. Luego ejecutamos desde la terminal
./hello

y tendremos nuestro primer programa harbour en linux funcionado.

En la carpeta tests dentro de la carpeta harbour , encontraran un monton de ejemplos basicos de programacion y en la carpeta contrib , un monton de librerias que pueden ser utiles a la hora de intentar desarrllar algun proyecto , incluidas varias librerias para desarrollo de programas en modo grafico.

El sitio web de Harbour Oficial puede servir como punto de partida de informacion y acceso a las listas de correo de usuarios y desarrolladores.

http://www.harbour-project.org

Espero que les sirva y les haya gustado

Bruno
Actualizado ( Domingo, 10 de Enero de 2010 22:49 )
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
User avatar
Armando Picon
 
Posts: 446
Joined: Mon Dec 26, 2005 9:11 pm
Location: Lima, Peru

Previous

Return to FiveLinux / FiveDroid (Android)

Who is online

Users browsing this forum: No registered users and 1 guest