Página 1 de 2

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

Enviado: 30 Mai 2014 01:03
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

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

Enviado: 30 Mai 2014 10:47
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

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

Enviado: 30 Mai 2014 11:49
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 )
//----------------------------------------------------------------------

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

Enviado: 30 Mai 2014 14:54
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

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

Enviado: 30 Mai 2014 14:59
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

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

Enviado: 30 Mai 2014 15:22
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!

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

Enviado: 30 Mai 2014 15:33
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 2074 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 
****************************************************************************

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

Enviado: 30 Mai 2014 15:53
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

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

Enviado: 30 Mai 2014 16:08
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,

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

Enviado: 30 Mai 2014 16:19
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

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

Enviado: 31 Mai 2014 11:21
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

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

Enviado: 31 Mai 2014 13:34
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.

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

Enviado: 01 Jun 2014 20:05
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.

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

Enviado: 02 Jun 2014 09:12
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.

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

Enviado: 02 Jun 2014 10:56
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.