Clipper On Line • Ver Tópico - HBQT compilação com Harbour

HBQT compilação com Harbour

Projeto Harbour QT - HbQt, HbXBP e HbIDE

Moderador: Moderadores

 

Re: HBQT compilação com Harbour

Mensagempor chrissoares » 24 Jan 2011 18:23

Obrigado Toledo,

Compilou sem as mensagens na parte da QT, muito obrigado.

Estou agora tentando compilar um exemplo. Fiz um teste com o exemplo do Stanis para ver Videos do Youtube e não consegui compilar também. Utilizei a mesma configuração de ambiente so alterando a path para c:\hbmgw\bin onde era c:\harbour\bin.
Compilei com:
hbmk2 youtube.hbp

Gerou os seguintes erros:
D:\Sistemas\youtube-src>hbmk2 youtube.hbp
hbmk2: Processando op‡äes do ambiente: -compiler=mingw
hbmk2: Harbour: Compilando m¢dulos...
Harbour 2.1.0rc1 (Rev. 16094)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'Main.ui'...
Main.ui(1) Error E0030  Syntax error "syntax error at '<'"
Main.ui(2) Error E0030  Syntax error "syntax error at '<'"
Main.ui(3) Error E0030  Syntax error "syntax error at '<'"
Main.ui(4) Error E0030  Syntax error "syntax error at '<'"
Main.ui(5) Error E0030  Syntax error "syntax error at '<'"
Main.ui(6) Error E0030  Syntax error "syntax error at '<'"
Main.ui(7) Error E0030  Syntax error "syntax error at '<'"
Main.ui(8) Error E0030  Syntax error "syntax error at '<'"
Main.ui(9) Error E0030  Syntax error "syntax error at '<'"
Main.ui(10) Error E0030  Syntax error "syntax error at '<'"
Main.ui(11) Error E0030  Syntax error "syntax error at '<'"
Main.ui(12) Error E0030  Syntax error "syntax error at '<'"
Main.ui(13) Error E0030  Syntax error "syntax error at '<'"

Estes erros acredito que sejam porque foi colocado no arquivo de makefile o arquivo .ui com as fererências da tela.

Compilando com:
hbmk2 youtube.prg

Gera os seguintes erros:
hbmk2: Processando op‡äes do ambiente: -compiler=mingw
Harbour 2.1.0rc1 (Rev. 16094)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'youtube.prg'...
Lines 872, Functions/Procedures 10
Generating C source output to 'C:\DOCUME~1\CHRIST~1.WSO\CONFIG~1\Temp\hbmk_t1wux
3.dir\youtube.c'... Done.
C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_t1wux3.dir/youtube.o:youtube.c:(.dat
a+0x1b8): undefined reference to `HB_FUN_QAPPLICATION'
C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_t1wux3.dir/youtube.o:youtube.c:(.dat
a+0x1d8): undefined reference to `HB_FUN_QRESOURCE'
C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_t1wux3.dir/youtube.o:youtube.c:(.dat
a+0x208): undefined reference to `HB_FUN_HBQTRES_RES'
C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_t1wux3.dir/youtube.o:youtube.c:(.dat
a+0x258): undefined reference to `HB_FUN_HBQTUI_MAIN'
C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_t1wux3.dir/youtube.o:youtube.c:(.dat
a+0x3d8): undefined reference to `HB_FUN_TIPCLIENTHTTP'
C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_t1wux3.dir/youtube.o:youtube.c:(.dat
a+0x3f8): undefined reference to `HB_FUN_MSGINFO'
C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_t1wux3.dir/youtube.o:youtube.c:(.dat
a+0x4c8): undefined reference to `HB_FUN_QURL'
collect2: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
gcc.exe C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_t1wux3.dir/youtube.o C:/DOCU
ME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_t1wux3.dir/hbmk_mg7e2n.o    -mconsole -Wl,-
-start-group -lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage -lgtcgi -lgt
pca -lgtstd -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -lrdd
cdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcomm
on -lhbmainstd -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -lwinspool -lcomc
tl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm
32 -lmsimg32 -lwininet -lhbpcre -lhbzlib  -Wl,--end-group -oyoutube.exe  -Lc:/hb
mgw/lib/win/mingw -Lc:/hbmgw/bin

Nessa parte eu não entendi. Ele esta procurando dentro do diretório Temp que o Windows mantem, é assim mesmo, não deveria ser no diretório atual ? Os erros acusam que esta faltando as referências para as classes e funções.

Abaixo esta a configuração do meu ambiente.
SET PATH=%PATH%;c:\mingw\bin;c:\hbmgw\bin;C:\Qt\2010.05\qt\bin;C:\Qt\2010.05\qt\include;C:\hbmgw\include
SET INCLUDE=%INCLUDE%;c:\mingw\include;c:\hbmgw\include
SET LIB=%LIB%;c:\mingw\lib;c:\hbmgw\lib
SET HB_PATH=c:\hbmgw
SET HRB_DIR=c:\hbmgw
set HB_COMPILER=mingw
set HB_WITH_QT=C:\Qt\2010.05\qt\include

Obrigado pela ajuda de todos!
Christiano R. Soares
Analista Desenvolvedor
www.bhdados.com.br

'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
chrissoares
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 45
Data de registro: 23 Dez 2009 13:35
Cidade/Estado: Belo Horizonte/MG
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

Re: HBQT compilação com Harbour

Mensagempor Toledo » 24 Jan 2011 18:52

chrissoares escreveu:Fiz um teste com o exemplo do Stanis para ver Videos do Youtube e não consegui compilar também.


Estes exemplos do Stanis foi desenvolvido para compilação no Linux, então para compilar no Windows, no arquivo HBP tem que serem feitas algumas alterações:

Editar o arquivo YOUTUBE.HBP procure por:
/usr/src/harbour/contrib/hbqt/hbqt.hbc
/usr/src/harbour/contrib/hbtip/hbtip.hbc

e troque por:
c:\harbour\contrib\hbqt\hbqt.hbc
c:\harbour\contrib\hbtip\hbtip.hbc


Para compilar, use o comando: HBMK2 YOUTUBE.HBP

chrissoares escreveu:Estes erros acredito que sejam porque foi colocado no arquivo de makefile o arquivo .ui com as fererências da tela.


Não existe nada de errado em colocar o arquivo .UI no arquivo HBP. Na hora da compilação será criado um arquivo PRG temporário com a tela que está no arquivo .UI, ai sim é feita a compilação da mesma.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: HBQT compilação com Harbour

Mensagempor chrissoares » 24 Jan 2011 19:05

Mais uma vez obrigado Toledo,

Você estava certo, com tantas instalações de desinstalações até conseguir compilar, eu deixei no arquivo um caminho de uma instalação antiga, a primeira que eu já tinha. Depois que corrigir para o local correto, compilou um pouco mais mas ainda deu um erro.
D:\Sistemas\youtube-src>hbmk2 youtube.hbp
hbmk2: Processando op‡äes do ambiente: -compiler=mingw
hbmk2: Linkando... youtube.exe
.hbmk/win/mingw/youtube.o:youtube.c:(.data+0x3f8): undefined reference to `HB_FU
N_MSGINFO'
collect2: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
gcc.exe .hbmk/win/mingw/youtube.o .hbmk/win/mingw/rcc_res.o .hbmk/win/mingw/uic_
Main.o .hbmk/win/mingw/_hbmkaut.o .hbmk/win/mingw/_hbmkcpp.o    -mwindows -Wl,--
start-group -lsupc++ -lhbqtcore -lQtCore4 -lhbqtgui -lQtGui4 -lhbqtdesigner -lQt
Designer4 -lhbqtnetwork -lQtNetwork4 -lhbqtuitools -lQtUiTools -lhbqtwebkit -lQt
WebKit4 -lhbtip -lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage -lgtcgi -
lgtpca -lgtstd -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -l
rddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbc
ommon -lhbmainwin -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -lwinspool -lc
omctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -l
imm32 -lmsimg32 -lwininet -lhbpcre -lhbzlib  -Wl,--end-group -oyoutube.exe  -Lc:
/hbmgw/lib/win/mingw -Lc:/hbmgw/bin -LC:/Qt/4.7.1/lib

Mas esse eu consegui descobrir, estava faltando o arquivo util.prg no youtube.hbp

O meu arquivo youtube.hpb ficou assim:
-inc
-w3 -es2
-oyoutube
-gui

c:\harbour\contrib\hbqt\hbqt.hbc
c:\harbour\contrib\hbtip\hbtip.hbc

youtube.prg util.prg

Main.ui

res.qrc


Obrigado pela ajuda, agora vou estudar ele um pouco. Pretendo passar minha aplicação que hoje esta em xHarbour no modo console para Windows e estou estudando duas opções Fivewin e a Mingw com QT.

Muito obrigado pela ajuda! Tenha uma ótima noite!
:))

So um ultimo detalhe, onde eu encontro as DLL's necessárias para rodar a aplicação ?
Essas DLL's terão de ser enviadas junto com a aplicação, não existe como compilar sem precisar delas ?
Christiano R. Soares
Analista Desenvolvedor
www.bhdados.com.br

'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
chrissoares
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 45
Data de registro: 23 Dez 2009 13:35
Cidade/Estado: Belo Horizonte/MG
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

Re: HBQT compilação com Harbour

Mensagempor Toledo » 24 Jan 2011 19:26

chrissoares escreveu:So um ultimo detalhe, onde eu encontro as DLL's necessárias para rodar a aplicação ?

As DLLs você vai encontrar na pasta C:\Qt\2010.05\qt\bin.

chrissoares escreveu:Essas DLL's terão de ser enviadas junto com a aplicação, não existe como compilar sem precisar delas ?

Com a versão GPL (ou LGPL) da QT (que é esta que estamos usando) você tem que enviar as DLLs juntas com o executável da sua aplicação.
Agora, com a versão Comercial da QT, o envio das DLLs não seria necessário.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: HBQT compilação com Harbour

Mensagempor Toledo » 24 Jan 2011 20:03

chrissoares escreveu:Pretendo passar minha aplicação que hoje esta em xHarbour no modo console para Windows e estou estudando duas opções Fivewin e a Mingw com QT.


Atenção: é bom lembrar que a QT (não comercial) está sob a licença da LGPL 2.1, que tem uma série de restrições quando a distribuição das aplicações desenvolvidas com base nas bibliotecas da QT. Veja o link abaixo:

http://creativecommons.org/licenses/LGPL/2.1/legalcode.pt

Veja também:
http://www.pctoledo.com.br/forum/viewtopic.php?p=63590#p63590

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: HBQT compilação com Harbour

Mensagempor chrissoares » 26 Jan 2011 07:56

Verifiquei este detalhe da QT e no meu caso, tornou o seu uso inviável pois ainda não desejamos compartilhar os fontes dos nossos sistemas com nossos clientes e segundo a LGPL 2.1, é o que deve ser feito:
Por exemplo, se você distribuir cópias da biblioteca, seja gratuitamente ou mediante um valor, terá de conceder a seus receptores todos os direitos que estamos concedendo a você. Você terá de garantir que eles, também, recebam ou possam obter o código-fonte. Se você ligar outro código com a biblioteca, você deve fornecer os arquivos-objeto completos para os receptores, de modo que eles possam ligá-los novamente com a biblioteca após terem feito mudanças na biblioteca e recompilado a mesma. E você terá de exibir a eles esses termos, para que eles conheçam seus direitos.
Texto extraído de http://creativecommons.org/licenses/LGPL/2.1/legalcode.pt

E no momento não é viável o investimento na versão Comercial, esta muito cara. Vejam em http://shop.qt.nokia.com/us/product-licenses.html.
Bom, fico de certa forma decepcionado, pois sei que a utilização da QT seria uma garantia de Longevidade aos meus sistemas, vou tentar outras opções como o Fivewin.
Obrigado ao Toledo e os demais pelas dicas que me ajudaram muito.
Christiano R. Soares
Analista Desenvolvedor
www.bhdados.com.br

'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
chrissoares
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 45
Data de registro: 23 Dez 2009 13:35
Cidade/Estado: Belo Horizonte/MG
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

Re: HBQT compilação com Harbour

Mensagempor marcosgambeta » 26 Jan 2011 14:23

chrissoares,

Ainda é cedo para desistir, pois há um grande equívoco no entendimento da licença. Um programa, ao ser compilado, pode usar as bibliotecas do Qt Framework de duas maneiras:

1) dinâmicamente linkada

2) estaticamente linkada

O primeiro caso é quando você usa em forma de .dll. O código do Qt Framework não vai no seu software, mas fica na dll e seu programa chama as rotinas dela.

O segundo caso é quando você compila seu software, incluindo na compilação o código do Qt Framework. Neste caso, seu software e o Qt Framework se tornam um executável só.

A licença LGPL trata os dois casos de forma diferente. Veja o ítem 5 (primeira parte):

Um programa que não contenha nenhum derivativo de qualquer parte da Biblioteca, mas que seja desenhado para operar com a Biblioteca ao ser compilado ou ligado a ela, é chamado de uma "obra que usa a Biblioteca". Essa obra, isoladamente, não é uma obra derivada da Biblioteca e, portanto, fica de fora do âmbito desta Licença.


Isto significa que se seu software usa o Qt Framework dinâmicamente, não está sob a obrigação de seguir os termos da licença LGPL.

Agora veja a segunda parte do ítem 5:

Entretanto, a ligação de uma "obra que usa a Biblioteca" com a Biblioteca constitui um executável que é um derivado da Biblioteca (pois contém partes da Biblioteca), e não uma "obra que usa a Biblioteca". O executável é, assim, coberto por esta Licença. A Cláusula 6 estabelece os termos para a distribuição desses executáveis.


Este caso se refere ao uso do Qt Framework de forma estática. Ou seja, seu software e o Qt Framework são compilados de forma a se tornarem um único executável. Neste caso, o seu software deve seguir os termos da licença LGPL. Aqui entram os termos do ítem 6 da licença.

Resumindo: basta distribuir seu software junto com as dlls do Qt Framework, que não haverá problema algum com a licença.

Eu usei o termo dll, mas vale para outros sistemas operacionais também. O Linux usa .so como extensão para as bibliotecas dinâmicas, mas o princípio é o mesmo.

A hbqt usa a mesma licença do Harbour: GPL com excessão para a criação de executáveis. Então, não há problemas em usá-la dinâmicamente ou estaticamente.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

Re: HBQT compilação com Harbour

Mensagempor marcosgambeta » 26 Jan 2011 14:54

chrissoares escreveu:Verifiquei este detalhe da QT e no meu caso, tornou o seu uso inviável pois ainda não desejamos compartilhar os fontes dos nossos sistemas com nossos clientes e segundo a LGPL 2.1, é o que deve ser feito:
Por exemplo, se você distribuir cópias da biblioteca, seja gratuitamente ou mediante um valor, terá de conceder a seus receptores todos os direitos que estamos concedendo a você. Você terá de garantir que eles, também, recebam ou possam obter o código-fonte. Se você ligar outro código com a biblioteca, você deve fornecer os arquivos-objeto completos para os receptores, de modo que eles possam ligá-los novamente com a biblioteca após terem feito mudanças na biblioteca e recompilado a mesma. E você terá de exibir a eles esses termos, para que eles conheçam seus direitos.
Texto extraído de http://creativecommons.org/licenses/LGPL/2.1/legalcode.pt


Aqui está falando sobre o código do Qt Framework (a biblioteca mencionada nos termos da licença). No caso do seu software que estivesse ligado à biblioteca, você teria de fornecer os arquivos-objeto (não o código fonte), de forma que os usuários pudessem gerar um novo executável caso fizesem alguma alteração na biblioteca (no caso, o Qt Framework).

Quando se usa o Qt Framework dinâmicamente, é possível modificar o Qt Framework (atualizar para uma nova versão ou alterar e recompilar) sem precisar gerar novamente o executável do seu software.

Mas quando se usa estaticamente, então deve-se fornececer, no mínimo, os arquivos-objeto do seu software para que um novo executável possa ser gerado no caso de alguma modificação na biblioteca (o Qt Framework).

Espero que não dê nó na cabeça de ninguém.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

Re: HBQT compilação com Harbour

Mensagempor Toledo » 26 Jan 2011 18:53

Olá Marcos, obrigado pelo esclarecimento, eu estou com um programa bem adiantado e estava desistindo exatamente por não estar entendendo direito estas restrições no uso da QT.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: HBQT compilação com Harbour

Mensagempor chrissoares » 04 Fev 2011 08:24

Bom dia a todos!

Resumindo: basta distribuir seu software junto com as dlls do Qt Framework, que não haverá problema algum com a licença.

Muito Obrigado Marcos, eu já havia decidido parar de estudar a ferramenta, mas você deixou mais claro para nós a questão das licenças.
Vou continuar estudando seu uso e a dificuldade que terei para converter um sistema, atualmente em xHarbour 1.2.1 modo Console, para uma interface Grafica.

Abraços!
Christiano R. Soares
Analista Desenvolvedor
www.bhdados.com.br

'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
chrissoares
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 45
Data de registro: 23 Dez 2009 13:35
Cidade/Estado: Belo Horizonte/MG
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

Anterior



Retornar para QtContribs - HBQT

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro