Página 1 de 1

Compilando com hbMake

Enviado: 12 Nov 2010 18:07
por chrissoares
Boa tarde!

Estou tentando utilizar o hbMake para compilar minhas aplicações, vi alguns post's elogiando a sua falidade de uso e tal.
Eu o executei com o comando:

Código: Selecionar todos

hbmake make.bc -ex
A tela da configuração do hbMake ficou assim:

Código: Selecionar todos

╔════  HbMake v1.30 - xHarbour Make Utility            Opções de Ambiente  ══════╗
║Selecione o SO Win32▼ Selecione Compilador C  BCC  ▼  GT/GUI lib CONSOLE     ▼ ║
║Rdd Terceiros  None      ▼   [ ] Comprimir App ?    [ ] use xHarbour[.dll|.so]║
║Obj Files Dir obj                             Editor de errorlog:  notepad  ▼ ║
║Nome Executável: meuapp                             [ ] Create dll            ║
║                             Opções do xHarbour                               ║
║[ ] Declaração Automática de Memvar /a [ ] Variáveis são assumidas M-> /v     ║
║[ ] Info. Debug /b                     [ ] Suprime info de número da linha /l ║
║[ ] Gera saída pré-processada /p       [ ] Compila apenas o módulo /m         ║
║User Defines:                          User Include Path:                     ║
║[ ] Usa Libs Externas ?                [ ] xHarbour FWH                       ║
║Resource file Name:                                                           ║
║Qtd de PRGs por linha, no makefile:   5                                       ║
║[ ] Usar a biblioteca Multi Thread ?   Nível de Warnings /w 0                 ║
║[ ] Generate C-source, not PCode (-go3)                                       ║
║Informe o PRG principal da sua aplicação: MP.PRG                              ║
║                               HbMake options                                 ║
║[ ] Create #DEPENDS from #include      [ ] Scan recursive                     ║
║Excluding these extensions : .ch                                              ║
║                                                                              ║
║    Compilar app ? (S/N)  S                                                   ║
║    Forçar recompilação para todos PRGs </f> ? (S/N)                          ║
║                                                                              ║
║                                                                              ║
╚═   <Tab>-Avança <Sh-Tab>-Volta <Enter>-Sel. <↑↓>-Muda Sel. <Espc>-Abre Box   ══╝
A parte da compilação acontece sem nenhum erro, tudo tranquilo. Ha hora do Link fica uns 2 minutos aparecendo warnings referente a funções declaradas em prgs diferentes, mas isto não existe já conferi algumas e antes de usar o hbMake compilava normalmente. Abaixo esta um pouco das mensagems so para analise:

Código: Selecionar todos

Warning: Public symbol '_HB_FUN_FNSBTT' defined in both module D:\SISTEMAS\CP80\
OBJ\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN_SBKY' defined in both module D:\SISTEMAS\CP80\OB
J\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN_CHAMADOS' defined in both module D:\SISTEMAS\CP8
0\OBJ\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN_SAIDASUMARIA' defined in both module D:\SISTEMAS
\CP80\OBJ\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN_SCREENSAVER' defined in both module D:\SISTEMAS\
CP80\OBJ\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN_COMPARQ' defined in both module D:\SISTEMAS\CP80
\OBJ\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN_MEMORIADISP' defined in both module D:\SISTEMAS\
CP80\OBJ\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN_SBCA' defined in both module D:\SISTEMAS\CP80\OB
J\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN_INDEXAR' defined in both module D:\SISTEMAS\CP80
\OBJ\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN___REG' defined in both module D:\SISTEMAS\CP80\O
BJ\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
Warning: Public symbol '_HB_FUN_SBFI' defined in both module D:\SISTEMAS\CP80\OB
J\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ
É apenas uma tela de Warning, existem muitas telas iguais a esta.
Alguem poderia me dizer onte estou errando ?
Estou usando o xHarbour 1.2.0.

Muito Obrigado!

Re: Compilando com hbMake

Enviado: 13 Nov 2010 16:55
por Vander
Olá chrissoares;

Eu utilizo o HBMake e funciona perfeitamente, marque as opções abaixo e recompile
[x] Compila apenas o módulo /m
"marcar todos os prg´s do projeto"
[x] xHarbour FWH
"Será solicitado o local de instalação do xHarbour"
se usar lib de terceiros
[x] Usa Libs Externas ?
"marcar as lib´s utilizadas"

Não uso GT/GUI mas ajo que o princípio é o mesmo.

Vander

Re: Compilando com hbMake

Enviado: 13 Nov 2010 20:16
por Stanis Luksys
Olá,

Mas aí o que a mesagem diz é que você está declarando a mesma função em dois lugares diferentes, por exemplo:

Código: Selecionar todos

Warning: Public symbol '_HB_FUN_SBFI' defined in both module D:\SISTEMAS\CP80\OBJ\SIROT.OBJ and D:\SISTEMAS\CP80\OBJ\SSROT.OBJ 
Você tem estes dois prgs?
SIROT.PRG e SSROT.PRG?

Parece que a função SBFI() está sendo declarada nos dois. Se isso for verdadeiro talvez você consiga contronar declarando como STATIC, mas o ideal seria retirar de algum dos dois PRGs, se é que elas fazem a mesma coisa.

Abraços!

Re: Compilando com hbMake

Enviado: 16 Nov 2010 22:50
por chrissoares
Stanis Luksys escreveu:Olá,

Mas aí o que a mesagem diz é que você está declarando a mesma função em dois lugares diferentes, por exemplo:
Ola Stanis!

Obrigado pelo interece, mas o problema não é estar declarado em mais de um PRG, como eu havia dito:
ChrisSoares escreveu:A parte da compilação acontece sem nenhum erro, tudo tranquilo. Ha hora do Link fica uns 2 minutos aparecendo warnings referente a funções declaradas em prgs diferentes, mas isto não existe já conferi algumas e antes de usar o hbMake compilava normalmente. Abaixo esta um pouco das mensagems so para analise:
O sistema compila e já esta rodando, graças a Deus, mas tem esse incoviniente que não acontece quando eu uso meu Makefile antigo. Outra diferênça é que compilando com o hbMake, o sistema esta ficando maior (Utilizando mais MB), com o makefile antigo ele fica em torno de 4mb, com o hbMake ele esta ocupando 10mb. Acho que pode ter bibliotecas além das que eu uso, depois vou dar uma olhada nisso e tentar descobrir.

Gostaria de Agradecer ao Vander e ao Stanis pela atenção.

Abraços a todos.

Re: Compilando com hbMake

Enviado: 17 Nov 2010 10:08
por Stanis Luksys
Olá,

Estranho, uma vez que pela sua tela o nível de warnings já estar em zero. Faz algum tempo que não uso o hbmake e sinceramente vou ficar te devendo essa. Agora, sem querer desviar muito, você já tentou o Harbour? Ou está preso a muitas libs? Estou achando bem legal o modo de compilar com ele, e até dizem que seu desenvolvimento está mais ativo e que no momento está valendo mais a pena.

Abraços!

Re: Compilando com hbMake

Enviado: 17 Nov 2010 13:52
por chrissoares
Como vai Stanis!

Eu estou mesmo migrando para o Harbour, mas ainda tenho algumas coisas a acertar antes de poder passar pela migração.

Eu acredito que esse problema esteja ligado a chamadas de macro que existem dentro do meu sistema. Quando passei a compilá-lo com o xHarbour fui a visado para trocar todas as chamadas de função do tipo DO FUNÇÃO WITH..., mas com a correria acabei deixando pra lá. Quando tentei compilar com o xHarbour 1.2.1 deu erro nessas chamadas, mas com a versão 1.2.0 esta compilando.
Outro fato é que ao trocar algumas chamadas desta pela forma correta, percebi que o tamanho final do EXE diminuil, então acho que pode mesmo estar relacionado.

Ao observar, verifiquei que não são todos os arquivos do sistema que apresentam esse Warning, mas todos que apresentam listam todas as funções relacionando-as aos outros arquivos que tem o Warning. O arquivo de log chega aos 14Mb.

Mais uma vez, quero lhe agradecer pela atenção que você dá não so aos problemas que apresento mas a todos, vejo que você é bem ativo no forum e ajuda uma grande quantidade de usuários assim como eu.

Abraços, até mais!

Re: Compilando com hbMake

Enviado: 18 Nov 2010 14:25
por asimoes
chrissoares escreveu:DO FUNÇÃO WITH
Esta sintaxe é suportada no Harbour.

Re: Compilando com hbMake

Enviado: 18 Nov 2010 16:03
por chrissoares
asimoes escreveu:Esta sintaxe é suportada no Harbour.
Sim, já constatei isto, obrigado. Em breve vou estar compilando meu sistema com ele.

Abraços!

Re: Compilando com hbMake

Enviado: 19 Nov 2010 09:36
por Itamar M. Lins Jr.
O Harbour é mais "fiel" a sintaxe clipper do que o xHarbour, isso foi um dos motivos da criação do xHarbour.

Saudações,
Itamar M. Lins Jr.

Compilando com hbMake

Enviado: 02 Jun 2016 10:08
por Daiane
Galera tbm to tentando compilar com as mesmas configurações do amigo ai
mas da o seguinte erro:

Código: Selecionar todos

xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 9421)
Copyright 1999-2011, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'D:\MFISCOWIN\CV552.PRG'...
100200300400500600Lines 630, Functions/Procedures 3
Generating C source output to 'obj\CV552.c'...
Done.

Building object module for 'obj\CV552.c'
using C compiler 'BCC32' as defined in 'C:\xharbour_12.05\bin\harbour.cfg'...
Exec: BCC32  -c -D__EXPORT__ -IC:\xharbour_12.05\include  -d -LC:\xharbour_12.05\lib -oobj\CV552.obj obj\CV552.c
Done.
Deleting: "obj\CV552.c"
Done.
xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 9421)
Copyright 1999-2011, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'CV601.PRG'...

CV601.PRG(42) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(43) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(45) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(46) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(58) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(59) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(60) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(61) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(62) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(63) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(64) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(65) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(66) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(67) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(68) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(69) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(70) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(71) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(72) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(74) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(75) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(76) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(77) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(78) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(80) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(81) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(82) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(84) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(85) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(86) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(87) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(88) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(89) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(91) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(92) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(93) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(94) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(95) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(96) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(97) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(98) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(99) Error E0001  Statement not allowed outside of procedure or function

100

CV601.PRG(100) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(101) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(102) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(103) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(105) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(106) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(107) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(108) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(109) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(111) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(118) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(119) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(120) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(121) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(122) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(123) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(124) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(126) Error E0001  Statement not allowed outside of procedure or function

CV601.PRG(128) Error E0001  Statement not allowed outside of procedure or function

200

300

61 errors

No code generated
Alguem pode me ajudar?

Compilando com hbMake

Enviado: 02 Jun 2016 10:32
por Kapiaba