Compilar com libs

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

Compilar com libs

Mensagem por lapinhazzz »

Caros Amigos,

Tenho uma dúvida e gostaria que me esclarecessem por favor

Tenho um programa chamado final.prg

final.prg tem o seguinte:

proc main()
prg1()
prg2()
exit

prg1.prg tem o seguinte:
proc prg1()
@ 12,12 say "programa 1"


prg2.prg tem o seguinte:
proc prg2()
@ 12,12 say "programa 2"

Os programas prg1.prg e prg2.prg foram adicionados à Lib 3.lib através do tlib.

Agora como faço para compilar o programa final.prg com a lib 3.lib ou se tiver mais libs como faço.

A compilação diz-me o seguinte:

Unresolved External.

Gostaria que me ajudassem

Obrigado

Carlos Lapa
lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

Re: Compilar com libs

Mensagem por lapinhazzz »

Caros Amigos,

Descobri como se compila com as libs

Colocar as libs na pasta xharbour\lib e quando compilar escolher as libs externas e escolher a lib feita pelo usuário

Obrigado.

Carlos Lapa
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Compilar com libs

Mensagem por sygecom »

Bom, para quem não sabe aqui vai umas dicas:

Para gerar(compilar) uma LIB usando xHarbour pode se usar o hbmake com a seguinte linha de comando de dentro da pasta onde se encontra os .PRG que vai fazer parte da LIB:
hbmake nomelib.bc /elx
Esse comando vai abrir o hbmake , basta ir passando pelos parametros até chegar na lista dos arquivos .PRG e marcar com a barra de espaço os .PRG que fazem parte da LIB.

Com o Harbour já é mais facil ainda usando o hbmk2, e diga de passagem esta muito mais facil de compilar até mesmo sistemas. Até acho que o pessoal do xHarbour deveriam analisar a possibilidade de usar o hbmk2.exe no xharbour ao invés do hbmake.exe.
Bom, pela linha de dentro da pasta onde se encontra os .PRG basta chamar:
hbmk2 -trace -hblib -onomelib *.prg

Mais facil que isso só dois disso.

Depois para linkar as LIB geradas no projeto, é a mesma coisa, com o xHarbour se usa o hbmake porem apenas com o comando /EL e com o Harbour usando o hbmk2 *.prg, e se quiser adicionar umas LIB ao projeto compilado com harbour, basta colocar um arquivo com a extenção .HBP dentro da pasta que o hbmk2 le automaticamente o mesmo abaixo um exemplo do que estou usando com o Harbour

arquivo.hbp

Código: Selecionar todos

{win}libs=hwgui procmisc hbmzip hbziparc hbct hbtip hbwin xhb hbhpdf libhpdf libpng hbblat blat
{win}gt=gtgui
{linux}libs=hwgui procmisc hbmzip hbziparc hbtip hbhpdf libhpdf libpng
run=yes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

Re: Compilar com libs

Mensagem por lapinhazzz »

Caro Amigo e a todos deste forum.

Estive a compilar como você disse:

hbmake nomedalib.bc /elx
e depois o compilador diz o seguinte:

Warning 'prog1' not found in library
Warning 'prog2' not found in library

Avisa que os dois prgs não se encontram dentro da pasta das bibliotecas.
Coloquei a pasta no path e mesmo assim não funcionou.

Então e agora como faço?

Cumprimentos,

Carlos Lapa
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Compilar com libs

Mensagem por sygecom »

Olá Carlos,
Você marcou todos os .PRG que fazem parte da sua LIB ?

Post aqui por favor seu arquivo (nomedalib.bc) !

Se você esta tentando gerar uma LIB com o exemplo que postou acima, apenas link seu prg1.prg e prg2.prg, não prescisa de um terceiro arquivo com MAIN.

Código: Selecionar todos

//proc main()
//prg1()
//prg2()
//exit

//prg1.prg tem o seguinte:
proc prg1()
@ 12,12 say "programa 1"

//prg2.prg tem o seguinte:
proc prg2()
@ 12,12 say "programa 2"

Nota: MAIN é apenas para compilar seus aplicativos
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

Re: Compilar com libs

Mensagem por lapinhazzz »

Eu tenho um prg principal que se chama final. Tenho mais dois chamados prg1 e prg2
No final.prg tenho:

proc main()
prg1()
prg2()


no prg1 tenho:

proc prg1()
@ 2,2 say "primeiro prg"

no prg2 tenho:
@ 3,3 say "segundo prg"

Agora vou compilar dentro da pasta que contém os prgs e faço
hbmake final.bc /elx
E dá-me o erro que eu postei atrás

Agora não sei como fazer!

Muito obrigado pela atenção.

Carlos Lapa
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Compilar com libs

Mensagem por sygecom »

Faça como eu disse no topico anterior que vai dar certinho ! o que você postou no ultimo post não foram erros e sim avisos apenas.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder