erro na compilação de um programa em clipper com o XHARBOUR
Moderador: Moderadores
-
mhfferreira
- Usuário Nível 1

- Mensagens: 8
- Registrado em: 01 Nov 2010 16:02
- Localização: parana
erro na compilação de um programa em clipper com o XHARBOUR
boa noite..
trabalho com o clipper a alguns anos e agora (acreditem, mas só agora precisei migrar pra 64 bits) estou compilando meu programa com o xharbour, usando o BCC55.
Aparecem alguns erros e precisava de uma ajuda para resolvê-los...
bom, já vi que cada function minha ou procedure, preciso salvar um prg com o nome da mesma (correto?)
tentando compilar, aparece algumas mensagens e não cria o meu exe:
Warning W0001 Ambiguous reference: ....
function 'MAIN' does not end with RETURN statement (o MAIN está no meu prg principal (SL.prg) e o erro aparece no prg da minha função FUNDO.PRG)
error: Unresolved external '_HB_FUN_CONFIRMA' referenced from C:\TRAB\FONTES\SL.OBJ
reparei q este erro só dá nas minhas functions (onde cada uma tem o seu próprio prg), já nos meus procedures não ocorre este erro.
obrigada
trabalho com o clipper a alguns anos e agora (acreditem, mas só agora precisei migrar pra 64 bits) estou compilando meu programa com o xharbour, usando o BCC55.
Aparecem alguns erros e precisava de uma ajuda para resolvê-los...
bom, já vi que cada function minha ou procedure, preciso salvar um prg com o nome da mesma (correto?)
tentando compilar, aparece algumas mensagens e não cria o meu exe:
Warning W0001 Ambiguous reference: ....
function 'MAIN' does not end with RETURN statement (o MAIN está no meu prg principal (SL.prg) e o erro aparece no prg da minha função FUNDO.PRG)
error: Unresolved external '_HB_FUN_CONFIRMA' referenced from C:\TRAB\FONTES\SL.OBJ
reparei q este erro só dá nas minhas functions (onde cada uma tem o seu próprio prg), já nos meus procedures não ocorre este erro.
obrigada
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
erro na compilação de um programa em clipper com o XHARBOUR
tentando compilar, aparece algumas mensagens e não cria o meu exe:
Warning W0001 Ambiguous reference: .... FALTOU CONTINUAR A MENSAGEM.
Mas, geralmente Warning, não significam nada, somente chamando a sua atenção.
Function 'MAIN' does not end with RETURN statement (o MAIN está no meu prg principal (SL.prg) e o erro aparece no prg da minha função FUNDO.PRG)
http://www.itlnet.net/programming/progr ... 0e2d2.html
Abra o ERRO.LOG e veja a linha exata em que ocorre.
error: Unresolved external '_HB_FUN_CONFIRMA' referenced from C:\TRAB\FONTES\SL.OBJ
Vefifique se esta função existe e se existe, é de 32 bits.
Abs
Warning W0001 Ambiguous reference: .... FALTOU CONTINUAR A MENSAGEM.
Mas, geralmente Warning, não significam nada, somente chamando a sua atenção.
Function 'MAIN' does not end with RETURN statement (o MAIN está no meu prg principal (SL.prg) e o erro aparece no prg da minha função FUNDO.PRG)
http://www.itlnet.net/programming/progr ... 0e2d2.html
Abra o ERRO.LOG e veja a linha exata em que ocorre.
error: Unresolved external '_HB_FUN_CONFIRMA' referenced from C:\TRAB\FONTES\SL.OBJ
Vefifique se esta função existe e se existe, é de 32 bits.
Código: Selecionar todos
FUNCTION CONFIRMA()
//
RETURN NIL
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
erro na compilação de um programa em clipper com o XHARBOUR
Olá!
A única coisa que você deve fazer é chamar as funções sem o uso do comando DO, como se fazia antigamente. Veja exemplo:
Errado. Isto não procede. Você pode ter várias funções no mesmo arquivo .PRG ou arquivos .PRG que contem apenas funções, exatamente como no Clipper.mhfferreira escreveu:bom, já vi que cada function minha ou procedure, preciso salvar um prg com o nome da mesma (correto?)
A única coisa que você deve fazer é chamar as funções sem o uso do comando DO, como se fazia antigamente. Veja exemplo:
Código: Selecionar todos
DO MyFunc WITH 10 // Forma incorreta
MyFunc( 10 ) // Forma correta
//----------------------------------------------------------------------
STATIC FUNCTION MyFunc( nVal )
RETURN If( Empty( nVal ), 0, nVal * nVal )
//----------------------------------------------------------------------[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
mhfferreira
- Usuário Nível 1

- Mensagens: 8
- Registrado em: 01 Nov 2010 16:02
- Localização: parana
erro na compilação de um programa em clipper com o XHARBOUR
boa tarde Kapiaba:
Warning W0001 Ambiguous reference: 'OPCAO' não terminei pq cada linha q aparece esta mensagem é uma variável minha...
tem alguma opção para não me mostrar isto? vou ignorar estas mensagens então.
como eu gero o erro.log??? fiz uma varredura em minha máquina e não localizei este arquivo...
uso para compilar o seguinte bat
qdo liga minha máquina, executa o bpath.bat (nada mais é para prepará-la para a compilação com o xharbour)
set path=c:\windows\system32
set path=%path%;c:\bcc55\bin;c:\bcc55\lib;c:\bcc55\include
set path=%path%;c:\xharbour\bin;c:\xharbour\lib;c:\xhrbour\include
set include=c:\xhrbour\include;c:\bcc55\include
set lib=c:\bcc55\lib;c:\xharbour\lib;
set hb_path=c:\xharbour
daí no meu diretório fontes eu compilo com:
xhb sl (sl é o meu prg principal)
o xhb é um bat q tem
@echo off
cls
call BLD_B32 %1
estou fazendo certo?
e sobre a função, como deixo ela 64?
pq ela existe, e está sem erros, pois no clipper funciona.
Obrigada
Warning W0001 Ambiguous reference: 'OPCAO' não terminei pq cada linha q aparece esta mensagem é uma variável minha...
tem alguma opção para não me mostrar isto? vou ignorar estas mensagens então.
como eu gero o erro.log??? fiz uma varredura em minha máquina e não localizei este arquivo...
uso para compilar o seguinte bat
qdo liga minha máquina, executa o bpath.bat (nada mais é para prepará-la para a compilação com o xharbour)
set path=c:\windows\system32
set path=%path%;c:\bcc55\bin;c:\bcc55\lib;c:\bcc55\include
set path=%path%;c:\xharbour\bin;c:\xharbour\lib;c:\xhrbour\include
set include=c:\xhrbour\include;c:\bcc55\include
set lib=c:\bcc55\lib;c:\xharbour\lib;
set hb_path=c:\xharbour
daí no meu diretório fontes eu compilo com:
xhb sl (sl é o meu prg principal)
o xhb é um bat q tem
@echo off
cls
call BLD_B32 %1
estou fazendo certo?
e sobre a função, como deixo ela 64?
pq ela existe, e está sem erros, pois no clipper funciona.
Obrigada
-
mhfferreira
- Usuário Nível 1

- Mensagens: 8
- Registrado em: 01 Nov 2010 16:02
- Localização: parana
erro na compilação de um programa em clipper com o XHARBOUR
boa tarde Alexandre...
não consegui fazer com que ele compile com todas as minhas funções em um prg.
o que preciso fazer?
tenho lá.... sl_proc.prg
dentro dele...
FUNCTION AGUARDE
PARAMETERS LINHA,COLUNA
SALVA_TMP = SAVESCREEN(LINHA,COLUNA,LINHA+6,COLUNA+32)
SOMBRA(LINHA,COLUNA,LINHA+4,COLUNA+30)
SET COLOR TO &COR4
@ LINHA,COLUNA,LINHA+4,COLUNA+30 BOX FRAME3
@ LINHA+2,COLUNA+2 SAY "Aguarde Alguns Instantes..."
RETURN SALVA_TMP
****************************************************************************
PROCEDURE FUNDO
PARAMETERS ONDE
IF ONDE = 2
SET COLOR TO &COR1
ELSEIF ONDE = 3
SET COLOR TO &COR2
ELSE
SET COLOR TO &CORD
ENDIF
@ 23,00 SAY SPACE(80)
@ 00,00,23,79 BOX FRAME1+"°"
@ 00,67 SAY 'µ'+DTOC(DT)+'Æ'
RETURN
*******************************************************************************
e assim por diante....
e as funções não chamo com o do, somente as procedures... faço assim
AGUARDE(10,12)
do FUNDO with 2
obrigada
não consegui fazer com que ele compile com todas as minhas funções em um prg.
o que preciso fazer?
tenho lá.... sl_proc.prg
dentro dele...
FUNCTION AGUARDE
PARAMETERS LINHA,COLUNA
SALVA_TMP = SAVESCREEN(LINHA,COLUNA,LINHA+6,COLUNA+32)
SOMBRA(LINHA,COLUNA,LINHA+4,COLUNA+30)
SET COLOR TO &COR4
@ LINHA,COLUNA,LINHA+4,COLUNA+30 BOX FRAME3
@ LINHA+2,COLUNA+2 SAY "Aguarde Alguns Instantes..."
RETURN SALVA_TMP
****************************************************************************
PROCEDURE FUNDO
PARAMETERS ONDE
IF ONDE = 2
SET COLOR TO &COR1
ELSEIF ONDE = 3
SET COLOR TO &COR2
ELSE
SET COLOR TO &CORD
ENDIF
@ 23,00 SAY SPACE(80)
@ 00,00,23,79 BOX FRAME1+"°"
@ 00,67 SAY 'µ'+DTOC(DT)+'Æ'
RETURN
*******************************************************************************
e assim por diante....
e as funções não chamo com o do, somente as procedures... faço assim
AGUARDE(10,12)
do FUNDO with 2
obrigada
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
erro na compilação de um programa em clipper com o XHARBOUR
Olá!
Boa tarde (mh seria Maria Helena?)
O xHarbour possui um programa utilitário que serve para gerar o script de compilação para você. Não precisa criar batches manualmente.
No prompt de comando, posicione na pasta onde estão os teus fontes (arquivos .Prg) e tecle HbMake sistema.bc -ex. Vai abrir uma tela azul. Preencha todas as opções conforme sua necessidade (use o mouse ou a barra de espaço para selecionar os check boxes). Vai chegar em um ponto onde se abrirá uma janela listando todos os prgs existentes na pasta. Navegue com as setas e tecle a barra de espaço para selecionar um programa. Quando tiver selecionado todos os programas necessários, tecle enter. Continue selecionando as opções até a última. Feito isso, a compilação se iniciará e terminará com a geração do executável ou a exibição dos erros encontrados, que é feita, por padrão, através do notepad.exe.
Na linha acima (HbMake sistema.bc -ex) "sistema.bc" é o nome do arquivo de script de compilação que será criado. Você pode escolher o nome mais adequado para o teu sistema. O parâmetro -ex é usado apenas na criação do script. Depois disso, nas demais compilações, você deverá digitar apenas HbMake sistema.bc. Se tiver curiosidade, abra o arquivo sistema.bc com o teu editor de textos, para analisar o conteúdo e ver como é feito. Boa sorte!
Boa tarde (mh seria Maria Helena?)
O xHarbour possui um programa utilitário que serve para gerar o script de compilação para você. Não precisa criar batches manualmente.
No prompt de comando, posicione na pasta onde estão os teus fontes (arquivos .Prg) e tecle HbMake sistema.bc -ex. Vai abrir uma tela azul. Preencha todas as opções conforme sua necessidade (use o mouse ou a barra de espaço para selecionar os check boxes). Vai chegar em um ponto onde se abrirá uma janela listando todos os prgs existentes na pasta. Navegue com as setas e tecle a barra de espaço para selecionar um programa. Quando tiver selecionado todos os programas necessários, tecle enter. Continue selecionando as opções até a última. Feito isso, a compilação se iniciará e terminará com a geração do executável ou a exibição dos erros encontrados, que é feita, por padrão, através do notepad.exe.
Na linha acima (HbMake sistema.bc -ex) "sistema.bc" é o nome do arquivo de script de compilação que será criado. Você pode escolher o nome mais adequado para o teu sistema. O parâmetro -ex é usado apenas na criação do script. Depois disso, nas demais compilações, você deverá digitar apenas HbMake sistema.bc. Se tiver curiosidade, abra o arquivo sistema.bc com o teu editor de textos, para analisar o conteúdo e ver como é feito. Boa sorte!
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
erro na compilação de um programa em clipper com o XHARBOUR
Olá!
Quando precisar postar código fonte, coloque este código entre as tags code. Marque o texto e clique no botão code na barra de ferramentas da página "Postar uma resposta"
Não se usa mais esta sintaxe
Use assim:
O mesmo se aplica para procedures:
Quando precisar postar código fonte, coloque este código entre as tags code. Marque o texto e clique no botão code na barra de ferramentas da página "Postar uma resposta"
Não se usa mais esta sintaxe
Código: Selecionar todos
DO AGUARDE WITH 10,10
FUNCTION AGUARDE
PARAMETERS LINHA,COLUNA
SALVA_TMP = SAVESCREEN(LINHA,COLUNA,LINHA+6,COLUNA+32)
SOMBRA(LINHA,COLUNA,LINHA+4,COLUNA+30)
SET COLOR TO &COR4
@ LINHA,COLUNA,LINHA+4,COLUNA+30 BOX FRAME3
@ LINHA+2,COLUNA+2 SAY "Aguarde Alguns Instantes..."
RETURN SALVA_TMP
****************************************************************************Código: Selecionar todos
Aguarde(10,10)
FUNCTION AGUARDE( LINHA, COLUNA )
// Procure sempre declarar as variáveis utilizadas...
LOCAL SALVA_TMP := SAVESCREEN(LINHA,COLUNA,LINHA+6,COLUNA+32)
SOMBRA(LINHA,COLUNA,LINHA+4,COLUNA+30)
SET COLOR TO &COR4
@ LINHA,COLUNA,LINHA+4,COLUNA+30 BOX FRAME3
@ LINHA+2,COLUNA+2 SAY "Aguarde Alguns Instantes..."
RETURN SALVA_TMP
****************************************************************************Código: Selecionar todos
Aviso("Teste")
PROCEDURE Aviso( cString )
Alert( cString )
RETURN
****************************************************************************[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
mhfferreira
- Usuário Nível 1

- Mensagens: 8
- Registrado em: 01 Nov 2010 16:02
- Localização: parana
erro na compilação de um programa em clipper com o XHARBOUR
Obrigada Alexandre...
isto mesmo MH é Maria Helena... hehe
e desculpa, esqueci do detalhe do código... aff cabeça minha...
fiz como vc me falou... compilou mas não gerou o executável... deu o seguinte erro:
Error: Unresolved external '_main' referenced from c:\BBC55\lib\c0x32.obj
o bom é q minhas funçôes ficaram todas juntas... hehe
isto mesmo MH é Maria Helena... hehe
e desculpa, esqueci do detalhe do código... aff cabeça minha...
fiz como vc me falou... compilou mas não gerou o executável... deu o seguinte erro:
Error: Unresolved external '_main' referenced from c:\BBC55\lib\c0x32.obj
o bom é q minhas funçôes ficaram todas juntas... hehe
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
erro na compilação de um programa em clipper com o XHARBOUR
Verifique se voce está chamando no inicio do seu arquivo de lote,
echo \BCC55\lib\c0w32.obj + > b32.bc
Os erros, neste exemplo, ficam em: b32.bc, mas você pode renomear para; ERRO.LOG ou CLIP.LOG ou a seu gosto.
abs,
echo \BCC55\lib\c0w32.obj + > b32.bc
Os erros, neste exemplo, ficam em: b32.bc, mas você pode renomear para; ERRO.LOG ou CLIP.LOG ou a seu gosto.
abs,
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
erro na compilação de um programa em clipper com o XHARBOUR
Olá!
Agora ficou estranho... parece que este módulo c0x32 é interno ao compilador C (Bcc55).
Qual versão do xHarbour e BCC você está usando? Recomendo que você atualize para a mais recente.
Na verdade, como você está começando a migrar seu sistema, a melhor recomendação seria deixar de lado o xHarbour e utilizar o Harbour. Pesquise no fórum para saber as razões.
Veja: Como instalar o Harbour versão 2014 usando os fontes
Agora ficou estranho... parece que este módulo c0x32 é interno ao compilador C (Bcc55).
Qual versão do xHarbour e BCC você está usando? Recomendo que você atualize para a mais recente.
Na verdade, como você está começando a migrar seu sistema, a melhor recomendação seria deixar de lado o xHarbour e utilizar o Harbour. Pesquise no fórum para saber as razões.
Veja: Como instalar o Harbour versão 2014 usando os fontes
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
mhfferreira
- Usuário Nível 1

- Mensagens: 8
- Registrado em: 01 Nov 2010 16:02
- Localização: parana
erro na compilação de um programa em clipper com o XHARBOUR
Obrigada pessoal...
Alexandre, não posso mudar pro Harbour somente, por motivos "chefes" hehe
na verdade, a empresa optou (e eu concordei pelas leituras q fiz na net) por usar o xharbour e agora por padrão, não posso mudar.
Deu certo... o inicio do programa compilou... (modulei para ficar mais fácil a migração devido aos erros q estavam aparecendo)
Vou tentar compilar ele por inteiro e qq coisa grito pra vcs...
Obrigada novamente
Alexandre, não posso mudar pro Harbour somente, por motivos "chefes" hehe
na verdade, a empresa optou (e eu concordei pelas leituras q fiz na net) por usar o xharbour e agora por padrão, não posso mudar.
Deu certo... o inicio do programa compilou... (modulei para ficar mais fácil a migração devido aos erros q estavam aparecendo)
Vou tentar compilar ele por inteiro e qq coisa grito pra vcs...
Obrigada novamente
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
erro na compilação de um programa em clipper com o XHARBOUR
Por enquanto a unica coisa que o xHb tem é o SQLRDD e olhe lá, porque tem umas "zicas" com um gringo ai que achou alguns BUG´s no SQLRDD
Na verdade é uma faca de muitos legumes.
a)Por exemplo se estou usando DBF e passarei a usar SQL, então é lógico que refaça todas as minhas tabelas, MELHORANDO alguma coisa aqui e ali.
b)Se não irei mais utilizar PACK, REPLACE, etc porque isso não tem no SQL, não vejo muita utilidade em ficar esperando, já faço a mudança de tudo.
c)Ficar simulando DBF dentro do SQL é uma vantagem ? e se precisar usar o mesmo banco de dados com outros sistemas ?
Para quem só quer dizer que está usando MYSQL, PostGree etc, que só foi alterar duas linhas no código e pronto, sabemos que não é bem assim.
É preciso retirar os DO WHILE da vida, os SET RELATION, os SET FILTER etc, etc... Mudar muita coisa p/ poder usufruir do poder do SQL, então eu prefiro ir logo p/ o resultado final, porque para obter o resultado final, não é preciso passar pelo SQLRDD, posso usar esses comando nativamente, sem o SQLRDD e ainda compartilhar os dados com outros sistemas, simplesmente fazer as coisas como as outras linguagens fazem, PHP, DELPHI, VB, etc...
Saudações,
Itamar M. Lins Jr.
Na verdade é uma faca de muitos legumes.
a)Por exemplo se estou usando DBF e passarei a usar SQL, então é lógico que refaça todas as minhas tabelas, MELHORANDO alguma coisa aqui e ali.
b)Se não irei mais utilizar PACK, REPLACE, etc porque isso não tem no SQL, não vejo muita utilidade em ficar esperando, já faço a mudança de tudo.
c)Ficar simulando DBF dentro do SQL é uma vantagem ? e se precisar usar o mesmo banco de dados com outros sistemas ?
Para quem só quer dizer que está usando MYSQL, PostGree etc, que só foi alterar duas linhas no código e pronto, sabemos que não é bem assim.
É preciso retirar os DO WHILE da vida, os SET RELATION, os SET FILTER etc, etc... Mudar muita coisa p/ poder usufruir do poder do SQL, então eu prefiro ir logo p/ o resultado final, porque para obter o resultado final, não é preciso passar pelo SQLRDD, posso usar esses comando nativamente, sem o SQLRDD e ainda compartilhar os dados com outros sistemas, simplesmente fazer as coisas como as outras linguagens fazem, PHP, DELPHI, VB, etc...
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
erro na compilação de um programa em clipper com o XHARBOUR
Itamar,
Você não sabe nada, o SQLRDD é muito bom, tenho mais de 300 sistemas instalado usando PostgreSQL + SQLRDD o desempenho é nota 1000, já desistalei alguns DBF por ai....
Maria Helena,
Se tiver duvidas posta aqui que vamos se ajudando, boa sorte.
Você não sabe nada, o SQLRDD é muito bom, tenho mais de 300 sistemas instalado usando PostgreSQL + SQLRDD o desempenho é nota 1000, já desistalei alguns DBF por ai....
Maria Helena,
Se tiver duvidas posta aqui que vamos se ajudando, boa sorte.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
erro na compilação de um programa em clipper com o XHARBOUR
Eu não sei nada se SQLRDD é verdade.
Agora conteste no que eu citei.
Saudações,
Itamar M. Lins Jr.
Agora conteste no que eu citei.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
erro na compilação de um programa em clipper com o XHARBOUR
Ola!
Ao alxsts
Quando usamos:
É a,b,c,d fica PRIVATE!
Se usamos:
a,b,c,d fica LOCAL
Só esclarecendo caso não saiba.
Saudações,
Itamar M. Lins Jr.
Ao alxsts
Quando usamos:
Código: Selecionar todos
Function xyz
Parameters a,b,c,d...
Se usamos:
Código: Selecionar todos
Function xyz(a,b,c,d)
Só esclarecendo caso não saiba.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.