erro na compilação de um programa em clipper com o XHARBOUR

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

Moderador: Moderadores

mhfferreira
Usuário Nível 1
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

Mensagem por mhfferreira »

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
Kapiaba
Colaborador
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

Mensagem por Kapiaba »

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.

Código: Selecionar todos

FUNCTION CONFIRMA()
//
RETURN NIL
Abs
alxsts
Colaborador
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

Mensagem por alxsts »

Olá!
mhfferreira escreveu:bom, já vi que cada function minha ou procedure, preciso salvar um prg com o nome da mesma (correto?)
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.

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)
mhfferreira
Usuário Nível 1
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

Mensagem por mhfferreira »

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
mhfferreira
Usuário Nível 1
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

Mensagem por mhfferreira »

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
alxsts
Colaborador
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

Mensagem por alxsts »

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!
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador
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

Mensagem por alxsts »

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"
Capturar.PNG
Capturar.PNG (9.26 KiB) Exibido 2070 vezes
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
****************************************************************************
Use assim:

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
****************************************************************************
O mesmo se aplica para procedures:

Código: Selecionar todos

   Aviso("Teste")

PROCEDURE Aviso( cString )

   Alert( cString )

RETURN 
****************************************************************************
[]´s
Alexandre Santos (AlxSts)
mhfferreira
Usuário Nível 1
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

Mensagem por mhfferreira »

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
Kapiaba
Colaborador
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

Mensagem por Kapiaba »

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,
alxsts
Colaborador
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

Mensagem por alxsts »

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
[]´s
Alexandre Santos (AlxSts)
mhfferreira
Usuário Nível 1
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

Mensagem por mhfferreira »

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
Avatar do usuário
Itamar M. Lins Jr.
Administrador
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

Mensagem por Itamar M. Lins Jr. »

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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
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

Mensagem por sygecom »

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.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
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

Mensagem por Itamar M. Lins Jr. »

Eu não sei nada se SQLRDD é verdade.
Agora conteste no que eu citei.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
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

Mensagem por Itamar M. Lins Jr. »

Ola!
Ao alxsts
Quando usamos:

Código: Selecionar todos

Function xyz
Parameters a,b,c,d...
É a,b,c,d fica PRIVATE!
Se usamos:

Código: Selecionar todos

Function xyz(a,b,c,d)
a,b,c,d fica LOCAL
Só esclarecendo caso não saiba.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder