Redefinition of procedure or function:

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

Moderador: Moderadores

alvaro.bernardi
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 22 Nov 2008 11:02
Localização: Porto Velho

Re: Redefinition of procedure or function:

Mensagem por alvaro.bernardi »

Código: Selecionar todos

#BCC
VERSION=BCB.01
!ifndef CC_DIR
CC_DIR = $(MAKE_DIR)
!endif

!ifndef HB_DIR
HB_DIR = $(HARBOUR_DIR)
!endif
 
RECURSE= NO 
 
SHELL = 
COMPRESS = NO
EXTERNALLIB = NO
XFWH = NO
FILESTOADD =  5
WARNINGLEVEL =  0
USERDEFINE = 
USERINCLUDE = 
USERLIBS = 
EDITOR = edit
GUI = NO
MT = NO
SRC02 = obj 
PROJECT = estoque.exe $(PR) 
OBJFILES = $(SRC02)\ESTOQUE.obj $(SRC02)\AGENDA.obj $(SRC02)\AUXILIAR.obj $(SRC02)\BARRAS.obj $(SRC02)\CAD_BLOC.obj //
 $(SRC02)\CAD_LINH.obj $(SRC02)\CAD_MARC.obj $(SRC02)\CAD_MEC.obj $(SRC02)\CAD_ORCA.obj $(SRC02)\CAD_VEND.obj //
 $(SRC02)\COBS.obj $(SRC02)\COMPRAS.obj $(SRC02)\CORRECAO.obj $(SRC02)\CORREIO.obj $(SRC02)\EDITETIQ.obj //
 $(SRC02)\ERROR.obj $(SRC02)\ETIQUETA.obj $(SRC02)\FUNCEFES.obj $(SRC02)\FUNCOES.obj $(SRC02)\FUNC_ARQ.obj //
 $(SRC02)\FUNC_CAL.obj $(SRC02)\FUNC_CAN.obj $(SRC02)\FUNC_CLI.obj $(SRC02)\FUNC_ECF.obj $(SRC02)\FUNC_NF.obj //
 $(SRC02)\FUNC_OS.obj $(SRC02)\FUNC_TEF.obj $(SRC02)\FUNC_VAR.obj $(SRC02)\HELP.obj $(SRC02)\IMPETIQ.obj //
 $(SRC02)\MENU_FOR.obj $(SRC02)\METAS.obj $(SRC02)\MOVIMENT.obj $(SRC02)\MULTUSER.obj $(SRC02)\NOVIDADE.obj //
 $(SRC02)\OS.obj $(SRC02)\PRECOS.obj $(SRC02)\REL.obj $(SRC02)\REMBANCO.obj $(SRC02)\RVFINATV.obj //
 $(SRC02)\RVFINBAI.obj $(SRC02)\RVFINCID.obj $(SRC02)\RVFINCLI.obj $(SRC02)\RVFINDT.obj $(SRC02)\RVFINFOR.obj //
 $(SRC02)\RVFINVND.obj $(SRC02)\RVFISATV.obj $(SRC02)\RVFISCLI.obj $(SRC02)\RVFISFOR.obj $(SRC02)\RVFISGRP.obj //
 $(SRC02)\RVFISPRD.obj $(SRC02)\RVFISTRB.obj $(SRC02)\RVFISVND.obj $(SRC02)\R_ABCG.obj $(SRC02)\R_A_VLR.obj //
 $(SRC02)\R_BLOCO.obj $(SRC02)\R_CARNE.obj $(SRC02)\R_CLASS.obj $(SRC02)\R_COMISM.obj $(SRC02)\R_COMISV.obj //
 $(SRC02)\R_COMPES.obj $(SRC02)\R_CONF.obj $(SRC02)\R_CONFBX.obj $(SRC02)\R_CONTAR.obj $(SRC02)\R_DP_BCO.obj //
 $(SRC02)\R_DP_CIM.obj $(SRC02)\R_DP_PRE.obj $(SRC02)\R_DUP.obj $(SRC02)\R_E_FISG.obj $(SRC02)\R_FORN.obj //
 $(SRC02)\R_GIRO.obj $(SRC02)\R_HIST.obj $(SRC02)\R_INATIV.obj $(SRC02)\R_INVENT.obj $(SRC02)\R_KARD_A.obj //
 $(SRC02)\R_KARD_F.obj $(SRC02)\R_MARCA.obj $(SRC02)\R_MEC.obj $(SRC02)\R_MOVMAN.obj $(SRC02)\R_M_GIRO.obj //
 $(SRC02)\R_NF_E.obj $(SRC02)\R_NF_S.obj $(SRC02)\R_PEDP.obj $(SRC02)\R_PEDS.obj $(SRC02)\R_PICO.obj //
 $(SRC02)\R_PROCAD.obj $(SRC02)\R_PRODTR.obj $(SRC02)\R_PROREA.obj $(SRC02)\R_PROZER.obj $(SRC02)\R_RENTAB.obj //
 $(SRC02)\R_SUGEST.obj $(SRC02)\R_TOT.obj $(SRC02)\R_TOTGER.obj $(SRC02)\R_VEND.obj $(SRC02)\R_VENDAS.obj //
 $(SRC02)\SETUP.obj $(SRC02)\TABELAS.obj $(SRC02)\TAB_PREC.obj $(SRC02)\TBEDIT.obj $(SRC02)\TENTREGA.obj //
 $(SRC02)\TVENDAS.obj $(SRC02)\USUARIOS.obj $(SRC02)\UTILITS.obj $(OB) 
PRGFILES = ESTOQUE.PRG AGENDA.PRG AUXILIAR.PRG BARRAS.PRG CAD_BLOC.PRG //
 CAD_LINH.PRG CAD_MARC.PRG CAD_MEC.PRG CAD_ORCA.PRG CAD_VEND.PRG //
 COBS.PRG COMPRAS.PRG CORRECAO.PRG CORREIO.PRG EDITETIQ.PRG //
 ERROR.PRG ETIQUETA.PRG FUNCEFES.PRG FUNCOES.PRG FUNC_ARQ.PRG //
 FUNC_CAL.PRG FUNC_CAN.PRG FUNC_CLI.PRG FUNC_ECF.PRG FUNC_NF.PRG //
 FUNC_OS.PRG FUNC_TEF.PRG FUNC_VAR.PRG HELP.PRG IMPETIQ.PRG //
 MENU_FOR.PRG METAS.PRG MOVIMENT.PRG MULTUSER.PRG NOVIDADE.PRG //
 OS.PRG PRECOS.PRG REL.PRG REMBANCO.PRG RVFINATV.PRG //
 RVFINBAI.PRG RVFINCID.PRG RVFINCLI.PRG RVFINDT.PRG RVFINFOR.PRG //
 RVFINVND.PRG RVFISATV.PRG RVFISCLI.PRG RVFISFOR.PRG RVFISGRP.PRG //
 RVFISPRD.PRG RVFISTRB.PRG RVFISVND.PRG R_ABCG.PRG R_A_VLR.PRG //
 R_BLOCO.PRG R_CARNE.PRG R_CLASS.PRG R_COMISM.PRG R_COMISV.PRG //
 R_COMPES.PRG R_CONF.PRG R_CONFBX.PRG R_CONTAR.PRG R_DP_BCO.PRG //
 R_DP_CIM.PRG R_DP_PRE.PRG R_DUP.PRG R_E_FISG.PRG R_FORN.PRG //
 R_GIRO.PRG R_HIST.PRG R_INATIV.PRG R_INVENT.PRG R_KARD_A.PRG //
 R_KARD_F.PRG R_MARCA.PRG R_MEC.PRG R_MOVMAN.PRG R_M_GIRO.PRG //
 R_NF_E.PRG R_NF_S.PRG R_PEDP.PRG R_PEDS.PRG R_PICO.PRG //
 R_PROCAD.PRG R_PRODTR.PRG R_PROREA.PRG R_PROZER.PRG R_RENTAB.PRG //
 R_SUGEST.PRG R_TOT.PRG R_TOTGER.PRG R_VEND.PRG R_VENDAS.PRG //
 SETUP.PRG TABELAS.PRG TAB_PREC.PRG TBEDIT.PRG TENTREGA.PRG //
 TVENDAS.PRG USUARIOS.PRG UTILITS.PRG $(PS) 
OBJCFILES = $(OBC) 
CFILES = $(CF)
RESFILES = 
RESDEPEN = 
TOPMODULE = ESTOQUE.PRG
LIBFILES = lang.lib vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib gtwin.lib codepage.lib ct.lib tip.lib pcrepos.lib hsx.lib hbsix.lib
EXTLIBFILES =
DEFFILE = 
HARBOURFLAGS =  -m  -w0
CFLAG1 =  -OS $(SHELL)  $(CFLAGS) -d -c -L$(HB_DIR)\lib 
CFLAG2 =  -I$(HB_DIR)\include;$(CC_DIR)\include
RFLAGS = 
LFLAGS = -L$(CC_DIR)\lib\obj;$(CC_DIR)\lib;$(HB_DIR)\lib -Gn -M -m -s -Tpe -x -ap
IFLAGS = 
LINKER = ilink32
 
ALLOBJ = c0x32.obj $(OBJFILES) $(OBJCFILES)
ALLRES = $(RESDEPEN)
ALLLIB = $(USERLIBS) $(LIBFILES) import32.lib cw32.lib
.autodepend
 
#DEPENDS
 
#COMMANDS
.cpp.obj:
$(CC_DIR)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**
 
.c.obj:
$(CC_DIR)\BIN\bcc32 -I$(HB_DIR)\include $(CFLAG1) $(CFLAG2) -o$* $**
 
.prg.obj:
$(HB_DIR)\bin\harbour -D__EXPORT__ -n -go -I$(HB_DIR)\include $(HARBOURFLAGS) -o$* $**
 
.rc.res:
$(CC_DIR)\BIN\brcc32 $(RFLAGS) $<
 
#BUILD
 
$(PROJECT): $(CFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE)
    $(CC_DIR)\BIN\$(LINKER) @&&!  
    $(LFLAGS) +
    $(ALLOBJ), +
    $(PROJECT),, +
    $(ALLLIB), +
    $(DEFFILE), +
    $(ALLRES) 
!
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Redefinition of procedure or function:

Mensagem por sygecom »

Tente tirar o -m da linha "HARBOURFLAGS"
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Redefinition of procedure or function:

Mensagem por microvolution »

Srs. boa tarde!
estou desde 2010 tentando migrar os meus clipper que foram feitos com o auxílio do SCULPTOR 3.31 (SQUADRA SOFTWARE de BH/Minas Gerais).
Esse sculptor tem uma metodologia bem padrão em todos os programas. Então no acima citado, fiquei conhecendo aqui pelo fórum o amigo Eolo Ventura que está nestes comentários.
Consegui compilar alguma coisa, mas, ao executar simplesmente o arquivo não dava nenhuma tela a não ser a tela preta e fechava em seguida.
Bom, como tinha alguns módulos para implentar em meu aplicativo (criar ORDEM DE SERVIÇO VEICULAR) e mais uma vez com a ajuda do Sr. Eolo, pude fazer do meu jeito adequar as suas ideias que muito foram válidas, e, aliás eu nunca havia conseguido em 10 anos fazer com o clipper (16 bits) funcionasse sem lentidão no w XP, e, foi com 2 libs que ele me mandou que isso passou a ser bacana.
Bom, falando aqui do problema, então, voltei agora em 2014 a tentar migrar.
Já tentei várias opções: xDev, Xedit, etc... mas nenhuma consegui compilar, mas, com o HMG IDE, consegui no braço compilar, desde que se ne alguns .PRGs eu tirasse a tão necessária "function nome do PRG/return nil" no iníco e fim do arquivo.
Então no exemplo abaixo, com o function habilitado gera o erro que aqui está sendo tratado, mas, se eu eliminá-lo, consigo compilar, mas, novamente volto no mesmo problema de 2010, gera-se um arquivo de aproximadamente 3mb (no meu caso SiCCA.EXE) mas ele não faz nada.
veja aí abaixo, como é um arquivo (.PRG) para criação do banco de dados (.DBF/NTX). Observem que tanto o PRG quanto o DBF e seu index NTX levam o mesmo nome DCI10000. Já mudei o "function DCI10000" para "function DCI1" ou qualquer outro nome, mas, o erro sempre é o mesmo:
========
function DCI10000 // para migrar pro xHarbour - 16/3/14
private DCI10000 := {{{'DCI10000',;
'Clientes',;
'&DIR\DCI10000.DBF'},;
{'ICI10000',;
'str (CDCLIENTE,04)',;
'&DIR\DCI10000.NTX'},;
{'ICI10500',;
'NMCLIENTE',;
'&DIR\ICI10500.NTX'},;
{'ICI10501',;
'NUCPF',;
'&DIR\ICI10501.NTX'},;
{'ICI10502',;
'NM_CONJUG',;
'&DIR\ICI10502.NTX'},;
{'ICI10503',;
'EDLOGRADO',;
'&DIR\ICI10503.NTX'}},;
{'CDCLIENTE' ,'N', 4, 0},;
{'NMCLIENTE' ,'C', 40, 0},;
{'NUCPF' ,'C', 11, 0},;
{'NUCGC' ,'C', 14, 0},;
{'EDLOGRADO' ,'C', 30, 0},;
{'EDBAIRRO' ,'C', 30, 0},;
{'EDCIDADE' ,'C', 30, 0},;
{'NUCEP' ,'C', 8, 0},;
{'NUFONE' ,'C', 10, 0},;
{'NURG' ,'C', 15, 0},;
{'DT_NASCIM' ,'D', 8, 0},;
{'NM_PAI' ,'C', 40, 0},;
{'NM_MAE' ,'C', 40, 0},;
{'DT_CADAST' ,'D', 8, 0},;
{'CDCAT_CLI' ,'C', 1, 0},;
{'CD_SPC' ,'C', 1, 0},;
{'DT_ULTCOM' ,'D', 8, 0},;
{'CD_ESTCIV' ,'C', 1, 0},;
{'NM_CONJUG' ,'C', 40, 0},;
{'NU_RG_CON' ,'C', 15, 0},;
{'DT_NASCON' ,'D', 8, 0},;
{'NM_PAICON' ,'C', 40, 0},;
{'NM_MAECON' ,'C', 40, 0},;
{'NU_CPFCON' ,'C', 11, 0},;
{'NM_LOCTRA' ,'C', 40, 0},;
{'VR_SALARI' ,'N', 12, 2},;
{'VR_LIMCRE' ,'N', 12, 2},;
{'DS_OBSERV' ,'C',100, 0},;
{'DT_SPC' ,'D', 8, 0},;
{'NM_SPC' ,'C', 40, 0},;
{'EDUF' ,'C', 2, 0},;
{'NM_LOCTR2' ,'C', 40, 0},;
{'VR_SALAR2' ,'N', 12, 2},;
{'NUCASA' ,'C', 15, 0},;
{'EDTIPO' ,'C', 5, 0},;
{'CDTP_END' ,'C', 2, 0},;
{'USU_SPC' ,'N', 2, 0},;
{'DT_SPCCAN' ,'D', 8, 0}}

return nil
===============
Se alguém tiver uma solução, talvez seja isso que está interferindo na compilação correta dos arquivos.
PS: se colocar com ou sem "()" dá o mesmo erro e sua linha: "c:\harbour\DCI10000.PRG(1) Error E0002 Redefinition of procedure ou function 'DCI100001".

Grato,
W de Paula.
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Redefinition of procedure or function:

Mensagem por Hasse »

Bom dia De Paula.

Compilei (com o BRMAKE) o teu código e não apresentou nenhum problema, e nem poderia, já que ela somente cria uma matriz para uso posterior, e o compilador informar que há uma redifinição de nomes, o que bem diferente.

Primeiro, observe se nos teus prg's o nome do prg é o mesmo que o nome da primeira Função ( excento o Main() ), ou seja:

O Main() pode ser: Cadastro.prg e FUNCTION Main()

Nos demais: MeuPrograma.prg e FUNCTION MeuPrograma()

Abaixo, neste mesmo prg, outras Functions podem co-existir sem qualquer problema.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Redefinition of procedure or function:

Mensagem por alxsts »

Olá!

Este é o mesmo comportamento do Clipper. Automaticamente é criada uma function com o nome do PRG. Se dentro do PRG já existr uma function com o mesmo nome do arquivo PRG e quisermos mantê-la, era só compilar com a switch /N. Da mesma forma, no Harbour é só compilar com o switch /n0.
D:\TestesHB>Harbour
Copyright (c) 1999-2012, http://harbour-project.org/

Syntax: harbour <file[.prg]|@file> [options]

Options: /a automatic memvar declaration
/b debug info
/build display detailed version info
/credits display credits
/d<id>[=<val>] #define <id>
/es[<level>] set exit severity
/fn[:[l|u]|-] set filename casing (l=lower u=upper)
/fd[:[l|u]|-] set directory casing (l=lower u=upper)
/fp[:<char>] set path separator
/fs[-] turn filename space trimming on or off (default)
/g<type> output type generated is <type> (see below)
/gc[<type>] output type: C source (.c) (default)
<type>: 0=compact (default) 1=normal 2=verbose
3=generate real C code
/gh output type: Harbour Portable Object (.hrb)
/gd[.<destext>] generate dependencies list into (.d) file
/ge[<mode>] error output <mode>: 0=Clipper (default)
1=IDE friendly
/i<path> #include file search path
/i[-|+] disable/enable support for INCLUDE envvar
/j[<file>] generate i18n gettext file (.pot)
/k compilation mode (type -k? for more data)
/l suppress line number information
/m compile module only
/n[<type>] no implicit starting procedure
<type>: 0=no implicit starting procedure
1=no starting procedure at all
2=add starting procedure if necessary

/o<path> object file drive and/or path
/p[<path>] generate pre-processed output (.ppo) file
/p+ generate pre-processor trace (.ppt) file
/q quiet
/q0 quiet and don't display program header
/q2 disable all output messages
/r:<max> set maximum number of preprocessor iterations
/s[m] syntax check only [minimal for dependencies list]
/u[<file>] use command def set in <file> (or none)
/u+<file> add command def set from <file>
/undef:<id> #undef <id>
/v variables are assumed M->
/w[<level>] set warning level number (0..3, default 1)
/x[<prefix>] set symbol init function name prefix (for .c only)
/z suppress shortcutting (.and. & .or.)
@<file> compile list of modules in <file>

D:\TestesHB>
[]´s
Alexandre Santos (AlxSts)
Responder