Como Compilar somente Alterações?
Moderador: Moderadores
- Marcos
- Usuário Nível 3

- Mensagens: 355
- Registrado em: 20 Set 2003 09:16
- Localização: Cáceres/Mato Grosso
Como Compilar somente Alterações?
Novamente em busca de respostas para uma questão ao meu ver de iniciante bastante complicada, e vocês tém me ajudado bastante em todos as dúvidas, pois todas as vezes que precisei fui atendido prontamente.
O meu sistema já tém até bastante PRG'S, sendo assim quando vou compila-lo ele está demorando muito para terminar a compilação, sendo que muitas vezes mudo o código apenas de um PRG, e ele compila todos os PRG'S inclusive os que não sofreram alterações, então eu pergunto, existe um jeito de compilar somente as alterações?
Observação-> Eu utilizo um BAT e um arquivo LNK, abaixos descritos.
**********A.BAT************
clipper MENU
@if errorlevel 1 goto end:
clipper FUNCAO
@if errorlevel 1 goto end:
clipper INDEXA
@if errorlevel 1 goto end:
clipper SENHA
@if errorlevel 1 goto end:
clipper DBEDITS
@if errorlevel 1 goto end:
clipper LIBERACA
@if errorlevel 1 goto end:
clipper EMPRESA
@if errorlevel 1 goto end:
clipper CLIENTES
@if errorlevel 1 goto end:
clipper FORNECED
@if errorlevel 1 goto end:
clipper ITENS
@if errorlevel 1 goto end:
clipper CIDADES
@if errorlevel 1 goto end:
clipper FUNCIONA
@if errorlevel 1 goto end:
clipper GRUPOS
@if errorlevel 1 goto end:
clipper TRANSPOR
@if errorlevel 1 goto end:
clipper NATUREZA
@if errorlevel 1 goto end:
clipper SITUACAO
@if errorlevel 1 goto end:
clipper OBSERVAC
@if errorlevel 1 goto end:
clipper VETERINA
@if errorlevel 1 goto end:
clipper GRUPOCON
@if errorlevel 1 goto end:
#clipper TIPOBAIX
#@if errorlevel 1 goto end:
clipper BANCOS
@if errorlevel 1 goto end:
clipper VENDAS
@if errorlevel 1 goto end:
clipper NF
@if errorlevel 1 goto end:
clipper COMPRAS
@if errorlevel 1 goto end:
clipper PRODUTOS
@if errorlevel 1 goto end:
clipper MOVICLI1
@if errorlevel 1 goto end:
clipper MOVICLI2
@if errorlevel 1 goto end:
clipper MOVICLI3
@if errorlevel 1 goto end:
clipper MOVICLI4
@if errorlevel 1 goto end:
clipper MOVICLI5
@if errorlevel 1 goto end:
clipper MOVICLI6
@if errorlevel 1 goto end:
clipper RELCLI1
@if errorlevel 1 goto end:
clipper NFPEDIDO
@if errorlevel 1 goto end:
clipper ESTORNO
@if errorlevel 1 goto end:
clipper ORCAMENT
@if errorlevel 1 goto end:
clipper CONTASAP
@if errorlevel 1 goto end:
clipper CONTASAR
@if errorlevel 1 goto end:
clipper IMPRESSO
@if errorlevel 1 goto end:
C:\CLIPPER5\BLINKER\BIN\BLINKER @AOII
MENU.EXE
:END
********** AOII.LNK ******************
NOBELL
BLI EXECUTABLE DUAL
BLI CLIPPER PAGE OFF
BLI OVERLAY THRESHOLD 256
BLI CACHE EMS 50%,1024
BLI OVERLAY PAGEFRAME ON
BLI OVERLAY FIXED
BLI OVERLAY UMB OFF
BLI OVERLAY OPSIZE 60
BLI EXE COMPRESS 5
BLI INCREMENTAL OFF
BLI EXE CLIPPER F:250
BLI EXE IPX 48
BLI EXECUTABLE EXTEND
BLI EXTMEM BLOCK 2048
BLI PROCEDURE DEPTH 140
BLI EXECUTABLE NODELETE
FI MENU
FI FUNCAO
FI INDEXA
FI SENHA
FI DBEDITS
FI LIBERACA
FI EMPRESA
FI CLIENTES
FI FORNECED
FI ITENS
FI CIDADES
FI FUNCIONA
FI GRUPOS
FI TRANSPOR
FI NATUREZA
FI SITUACAO
FI OBSERVAC
FI VETERINA
FI GRUPOCON
FI BANCOS
FI VENDAS
FI NF
FI COMPRAS
FI PRODUTOS
FI MOVICLI1
FI MOVICLI2
FI MOVICLI3
FI MOVICLI4
FI MOVICLI5
FI MOVICLI6
FI RELCLI1
FI NFPEDIDO
FI ESTORNO
FI ORCAMENT
FI CONTASAP
FI CONTASAR
FI IMPRESSO
# OBJS
FI CTUSP
FI __WAIT_B
FI TIMESLIC
# Bibliotecas a serem utilizados
SEARCH BLXCLP52
LIB VL2_52
LIB SIX2
LIB CLIPPER
LIB EXTEND
LIB OSLIB
LIB CLIPON
LIB CTP
LIB Relogio
LIB EDBF
#Executavel
Out MENU
Senhores estes são meus arquivos que utilizo para Compilar e Linkar meu sistema, conto com ajuda de vocês.
Abraços,
Marcos
Da Roça.
O meu sistema já tém até bastante PRG'S, sendo assim quando vou compila-lo ele está demorando muito para terminar a compilação, sendo que muitas vezes mudo o código apenas de um PRG, e ele compila todos os PRG'S inclusive os que não sofreram alterações, então eu pergunto, existe um jeito de compilar somente as alterações?
Observação-> Eu utilizo um BAT e um arquivo LNK, abaixos descritos.
**********A.BAT************
clipper MENU
@if errorlevel 1 goto end:
clipper FUNCAO
@if errorlevel 1 goto end:
clipper INDEXA
@if errorlevel 1 goto end:
clipper SENHA
@if errorlevel 1 goto end:
clipper DBEDITS
@if errorlevel 1 goto end:
clipper LIBERACA
@if errorlevel 1 goto end:
clipper EMPRESA
@if errorlevel 1 goto end:
clipper CLIENTES
@if errorlevel 1 goto end:
clipper FORNECED
@if errorlevel 1 goto end:
clipper ITENS
@if errorlevel 1 goto end:
clipper CIDADES
@if errorlevel 1 goto end:
clipper FUNCIONA
@if errorlevel 1 goto end:
clipper GRUPOS
@if errorlevel 1 goto end:
clipper TRANSPOR
@if errorlevel 1 goto end:
clipper NATUREZA
@if errorlevel 1 goto end:
clipper SITUACAO
@if errorlevel 1 goto end:
clipper OBSERVAC
@if errorlevel 1 goto end:
clipper VETERINA
@if errorlevel 1 goto end:
clipper GRUPOCON
@if errorlevel 1 goto end:
#clipper TIPOBAIX
#@if errorlevel 1 goto end:
clipper BANCOS
@if errorlevel 1 goto end:
clipper VENDAS
@if errorlevel 1 goto end:
clipper NF
@if errorlevel 1 goto end:
clipper COMPRAS
@if errorlevel 1 goto end:
clipper PRODUTOS
@if errorlevel 1 goto end:
clipper MOVICLI1
@if errorlevel 1 goto end:
clipper MOVICLI2
@if errorlevel 1 goto end:
clipper MOVICLI3
@if errorlevel 1 goto end:
clipper MOVICLI4
@if errorlevel 1 goto end:
clipper MOVICLI5
@if errorlevel 1 goto end:
clipper MOVICLI6
@if errorlevel 1 goto end:
clipper RELCLI1
@if errorlevel 1 goto end:
clipper NFPEDIDO
@if errorlevel 1 goto end:
clipper ESTORNO
@if errorlevel 1 goto end:
clipper ORCAMENT
@if errorlevel 1 goto end:
clipper CONTASAP
@if errorlevel 1 goto end:
clipper CONTASAR
@if errorlevel 1 goto end:
clipper IMPRESSO
@if errorlevel 1 goto end:
C:\CLIPPER5\BLINKER\BIN\BLINKER @AOII
MENU.EXE
:END
********** AOII.LNK ******************
NOBELL
BLI EXECUTABLE DUAL
BLI CLIPPER PAGE OFF
BLI OVERLAY THRESHOLD 256
BLI CACHE EMS 50%,1024
BLI OVERLAY PAGEFRAME ON
BLI OVERLAY FIXED
BLI OVERLAY UMB OFF
BLI OVERLAY OPSIZE 60
BLI EXE COMPRESS 5
BLI INCREMENTAL OFF
BLI EXE CLIPPER F:250
BLI EXE IPX 48
BLI EXECUTABLE EXTEND
BLI EXTMEM BLOCK 2048
BLI PROCEDURE DEPTH 140
BLI EXECUTABLE NODELETE
FI MENU
FI FUNCAO
FI INDEXA
FI SENHA
FI DBEDITS
FI LIBERACA
FI EMPRESA
FI CLIENTES
FI FORNECED
FI ITENS
FI CIDADES
FI FUNCIONA
FI GRUPOS
FI TRANSPOR
FI NATUREZA
FI SITUACAO
FI OBSERVAC
FI VETERINA
FI GRUPOCON
FI BANCOS
FI VENDAS
FI NF
FI COMPRAS
FI PRODUTOS
FI MOVICLI1
FI MOVICLI2
FI MOVICLI3
FI MOVICLI4
FI MOVICLI5
FI MOVICLI6
FI RELCLI1
FI NFPEDIDO
FI ESTORNO
FI ORCAMENT
FI CONTASAP
FI CONTASAR
FI IMPRESSO
# OBJS
FI CTUSP
FI __WAIT_B
FI TIMESLIC
# Bibliotecas a serem utilizados
SEARCH BLXCLP52
LIB VL2_52
LIB SIX2
LIB CLIPPER
LIB EXTEND
LIB OSLIB
LIB CLIPON
LIB CTP
LIB Relogio
LIB EDBF
#Executavel
Out MENU
Senhores estes são meus arquivos que utilizo para Compilar e Linkar meu sistema, conto com ajuda de vocês.
Abraços,
Marcos
Da Roça.
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Marcos a galera anda falando do rmake verifique os post no fórum sobre ele tb visite o link dicas do site do toledo la tb fala ok.
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
Olá,
Cara, utiliza o RMAKE. É moleza usá-lo. Ele compila somente o PRG que sofreu alteração.
Veja aqui como usá-lo:
http://www.htmlstaff.org/clipper/clipper34.php
Janio
Cara, utiliza o RMAKE. É moleza usá-lo. Ele compila somente o PRG que sofreu alteração.
Veja aqui como usá-lo:
http://www.htmlstaff.org/clipper/clipper34.php
Janio
- Marcos
- Usuário Nível 3

- Mensagens: 355
- Registrado em: 20 Set 2003 09:16
- Localização: Cáceres/Mato Grosso
Tentando...
Queria agradecer ao Janio e ao Dudu, aproveitando a oportunidade ontém tive o prazer de falar pelo MSN com o Dudu, obrigado por me antender e me sugerir o RMAKE assim como o Janio também sugeriu eu visitei a matéria sobre o RMAKE, escrevi o código de acordo com meu programa, mas não deu certo, primeiro eu escrevi os códigos com todos os meus PRG'S, depois tirei e deixei somente o MENU.PRG que é o PRG principal e quando executo o bat que chama o arquivo dá o seguinte erro: "MENU.RMK(14) Fatal RMAKE/R3012 Sintax error: 'Blinker'" e não gera o EXE, o exemplo que estava na matéria deu o mesmo erro, então tinha em meu computador um exemplo que uma amigo do fórum mandou pra mim a tempos atrás quando eu já havia tentado usar o RMAKE sem sucesso e também deu o mesmo erro, desculpe não citar o nome do colega que passou os exemplos pra mim, pois não me lembro mais que foi, perdoe-me. Abaixo está a forma que tentei:
*** C.BAT ***
CLS
RMAKE MENU.RMK
if not errorlevel 1 MENU.EXE
*** MENU.RMK ***
.prg.obj:
Call Clipper $< /m /b $(PARTXT)
MENU.OBJ : MENU.PRG
.PRG.OBJ:
CALL CLIPPER $< /M /N /Q /V /B $(PARTXT)
MENU.EXE : MENU.OBJ
CALL BLINKER @MENU.LNK $(PARTXT)
*** MENU.LNK ***
Blinker Lowmem Reserve 64
Blinker Incremental Off
Blinker Executable Extended
Blinker Executable Nodelete
Blinker Executable Compress 9
Blinker Overlay PageFrame on
Stack 7068
OUTPUT MENU.EXE
File MENU
Library c:\clipper\lib\vl2_52
Library c:\catools\lib\ctp
Library c:\catools\lib\six2
Library c:\catools\lib\oslib
Library c:\catools\lib\samples
Search c:\CLIPPER5\blinker\lib\blxclp52
Bom assim estão os arquivos que contém o erro.
Marcos
*** C.BAT ***
CLS
RMAKE MENU.RMK
if not errorlevel 1 MENU.EXE
*** MENU.RMK ***
.prg.obj:
Call Clipper $< /m /b $(PARTXT)
MENU.OBJ : MENU.PRG
.PRG.OBJ:
CALL CLIPPER $< /M /N /Q /V /B $(PARTXT)
MENU.EXE : MENU.OBJ
CALL BLINKER @MENU.LNK $(PARTXT)
*** MENU.LNK ***
Blinker Lowmem Reserve 64
Blinker Incremental Off
Blinker Executable Extended
Blinker Executable Nodelete
Blinker Executable Compress 9
Blinker Overlay PageFrame on
Stack 7068
OUTPUT MENU.EXE
File MENU
Library c:\clipper\lib\vl2_52
Library c:\catools\lib\ctp
Library c:\catools\lib\six2
Library c:\catools\lib\oslib
Library c:\catools\lib\samples
Search c:\CLIPPER5\blinker\lib\blxclp52
Bom assim estão os arquivos que contém o erro.
Marcos
Marcos,
Dê uma olhada neste post https://pctoledo.org/forum/viewtopic.php?t=671
Observação:
Coloque o RMK e LNK da maneira como lá está que dá certo.
No seu BAT coloque somente : RMAKE MENU
Janio
Dê uma olhada neste post https://pctoledo.org/forum/viewtopic.php?t=671
Observação:
Coloque o RMK e LNK da maneira como lá está que dá certo.
No seu BAT coloque somente : RMAKE MENU
Janio
Re: Como Compilar somente Alterações?
Eu não uso o RMAKE. Nunca gostei muito dele. Sempre preferi o MAKE da Borland, que me parece ser mais rápido (tenho esta impressão). Este utilitário é de uso muito simples, assim como o RMAKE.Marcos escreveu:estes são meus arquivos que utilizo para Compilar e Linkar meu sistema, conto com ajuda de vocês.
O problema maior que percebi, quando vi sua mensagem, foi a forma como você (e a maioria que usa esse sistema de compilação) informa seus arquivos. Por isso, tomei a liberdade de pegar seus dados e compor dois arquivos de scripts para o MAKE e o BLinker. E antes que pergunte: não sei se a sintaxe de script do MAKE é compatível com a sintaxe do RMAKE, e vice-e-versa.
Eis o script do MAKE:
Código: Selecionar todos
menu.exe: bancos.obj \
cidades.obj \
clientes.obj \
compras.obj \
contasap.obj \
contasar.obj \
dbedits.obj \
empresa.obj \
estorno.obj \
forneced.obj \
funcao.obj \
funciona.obj \
grupocon.obj \
grupos.obj \
impresso.obj \
indexa.obj \
itens.obj \
liberaca.obj \
menu.obj \
movicli1.obj \
movicli2.obj \
movicli3.obj \
movicli4.obj \
movicli5.obj \
movicli6.obj \
natureza.obj \
nf.obj \
nfpedido.obj \
observac.obj \
orcament.obj \
produtos.obj \
relcli1.obj \
senha.obj \
situacao.obj \
tipobaix.obj \
transpor.obj \
vendas.obj \
veterina.obj
cls
blinker @prg.lnk
.prg.obj:
cls
echo *******************************************************************************
echo Clipper $& $(OPT) -d$(COMP)
clipper $& $(OPT) -d$(COMP)
$&.obj: $&.prgRepare que os switches de compilação do Clipper não estão presentes. Assim como o RMAKE, o MAKE permite a você informar esses switches por meio de um programa à parte, normalmente um batch. Fica mais prático para você compilar para teste ou para a entrega final do programa para o cliente. Ao invés de ter que alterar o script, você simplesmente chama o batch com os switches na linha de comando. Por exemplo: "comp_menu /n/l". Logicamente o batch tem que estar preparado para fazer a substituição. Mas eu prefiro ter dois batches. Eu uso o UltraEdit32 para edição e já tenho configuradas duas teclas distintas para cada caso de compilação. Assim, preciso de dois batches.
Exemplo de batch que eu uso:
Código: Selecionar todos
@cls
make -fmenu -l+ -s -DOPT=/m/n/l -DCOMP=FINAL
@del *.obj
@echo .
@echo *******************************************************************************
@choice /C:ABCDEFGHIJKLMNOPQRSTUVWXYZ /N /T:X,10 SUCCESS! Código: Selecionar todos
-f -> indica o arquivo de script
-l+ -> em XP pode existir um erro de falta de espaço.
Esse switch previne esse problema.
-s -> silent. Instrui o Make a não imprimir os comandos
-D -> passa para a frete um símbolo. Veja que eu usei
dois: OPT=/m/n/l e COMP=FINAL. Esse último indica que
eu quero um EXE para entrega ao cliente. Tenho também
um outro (TESTE), que é lido no Clipper pelos comandos
de pré-processamento, incluindo ou excluindo partes do
código, conforme o caso.Se você preferir aceitar minha sugestão, use dois batches com os nomes: MENU-T para teste e MENU-F para compilação final, por exemplo.
Agora, o script do BLinker:
Código: Selecionar todos
nobell
output menu
map=menu s,a
file menu
file bancos
file cidades
file clientes
file compras
file contasap
file contasar
file dbedits
file empresa
file estorno
file forneced
file funcao
file funciona
file grupocon
file grupos
file impresso
file indexa
file itens
file liberaca
file movicli1
file movicli2
file movicli3
file movicli4
file movicli5
file movicli6
file natureza
file nf
file nfpedido
file observac
file orcament
file produtos
file relcli1
file senha
file situacao
file transpor
file vendas
file veterina
#
file ctusp
file __wait_b
file timeslic
lib blxclp52
lib vl2_52
lib six2
lib clipper
lib extend
lib oslib
lib clipon
lib ctp
lib relogio
lib edbf
blinker executable dual # aumenta +/- 70% o tamanho do EXE. Cuidado!
blinker clipper page off # precisa?
blinker overlay threshold 256 # precisa?
blinker cache ems 50%,1024 # precisa?
blinker overlay pageframe on # no modo extend não faz efeito.
blinker overlay fixed # no modo extend não faz efeito.
blinker overlay umb off # no modo extend não faz efeito.
blinker overlay opsize 60 # no modo extend não faz efeito.
blinker executable compress 5 # normalmente se usa ou 1 (máximo) ou 9 (mínimo)
blinker incremental off #
blinker executable clipper f:250 #
blinker executable ipx 48 # precisa?
blinker executable extend # se já usa dual, porquê extend? Remova um deles.
blinker extmem block 2048 # precisa?
blinker procedure depth 140 # precisa? Nunca conheci ninguém que precisasse.
blinker executable nodelete # cuidado! Fique de olho mas mensagens do BLinkerFiz algumas ressalvas na parametrização do BLinker quanto à montagem do executável. O que de pior vi é o uso do modo DUAL. Ele aumenta demais o tamanho do executável. Mas, como hoje em dia as máquinas têm sempre muita memória, meu conselho é que você use o modo EXTENDED. A não ser, claro, que seus programas ainda rodem em máquinas muito antigas. Suas LIBs, pelo que vi, parecem estar preparadas para o modo protegido. Acho que você não terá problemas. A não ser, talvez, no caso da lib RELOGIO. Já vi muita gente reclamando de GPF causada por ela. Mas, como você usa a CATools, aconselho você a removê-la e passar usar a função ShowTime(), que, pelo que sei, faz a mesma coisa.
É isso. Se quiser trocar mais algumas idéias a respeito, é só dizer. Espero ter conseguido mais ajudar do que complicar. E, lembre-se: o Make está disponível na minha página (tabela verde). Mas o CHOICE.COM você terá de me pedir, se é que já não tem.
[]'s
Maligno
http://www.buzinello.com/prg
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Opa mestre Maligno !!
Eu tb uso o make em programas clipper, soh uso o rmake no 5win...
Qdo uso o make eu crio um arquivo chamado makefile contendo todo o script para compilação... e soh digito make e ele faz tudo....eu uso make desde o antigo fórum qdo li sobre ele....e no final coloco prele executar o programa no final da compilação...tudo dentro do arquivo makefile...eh da hora...conforme citado....
Eu tb uso o make em programas clipper, soh uso o rmake no 5win...
Qdo uso o make eu crio um arquivo chamado makefile contendo todo o script para compilação... e soh digito make e ele faz tudo....eu uso make desde o antigo fórum qdo li sobre ele....e no final coloco prele executar o programa no final da compilação...tudo dentro do arquivo makefile...eh da hora...conforme citado....
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
É isso mesmo Dudu.Dudu_XBase escreveu:Eu tb uso o make em programas clipper, soh uso o rmake no 5win...
Inclusive, quem não usa esse tipo de ferramenta mas pretende migrar para xHarbour, é bom começar a se acostumar. Apesar do xHarbour ter o HBMake, que automatiza o processo de montagem dos scripts. Aliás, a idéia deles com esse programa foi boa, assim como a intenção. Mas quem for depender dele ficará preso a um programa que é muito ruim de usar e que gera um script difícil de manter. O ideal é ter controle da situação, começando então a aprender mais sobre o assunto e se tornando, assim, independente.
[]'s
Maligno
http://www.buzinello.com/prg
-
gransoft
- Usuário Nível 3

- Mensagens: 321
- Registrado em: 06 Jul 2004 17:48
- Localização: UBERLÂNDIA-MG
- Contato:
HBmake
ARAGUARI-MG, 19 de setembro de 2004.
Prezados Srs.,
Analisando o POST do Malígno, cheguei à conclusão de que EU NÃO estou louco e nem criando caso à toa...
Existe realmente algo de "muito chato" no HBMAKE do xHarbour !
E, conforme postei anteriormente, o Clippeiro que teve que fragmentar o Aplicativo em Clipper5.2E para solucionar o erro "string exausta", terá dificuldades em "encadear" os *.prgs quando migrar para xHarbour.
Atenciosamente,
Janis Peters Grants.
http://www.gransoft.com.br
gransoft@zipmail.com.br
Prezados Srs.,
Analisando o POST do Malígno, cheguei à conclusão de que EU NÃO estou louco e nem criando caso à toa...
Existe realmente algo de "muito chato" no HBMAKE do xHarbour !
E, conforme postei anteriormente, o Clippeiro que teve que fragmentar o Aplicativo em Clipper5.2E para solucionar o erro "string exausta", terá dificuldades em "encadear" os *.prgs quando migrar para xHarbour.
Atenciosamente,
Janis Peters Grants.
http://www.gransoft.com.br
gransoft@zipmail.com.br
Editado pela última vez por gransoft em 20 Set 2004 17:37, em um total de 1 vez.
Re: HBmake
Sinceramente acho que "chato" é um adjetivo modesto para o HBMake. Na minha opinião ele é imprestável. Fui fazer alguns testes e, da coisa mal feita como é, desisti de usá-lo. Acabei fazendo no braço mesmo.gransoft escreveu:Existe realmente algo de "muito chato" no HBMAKE do xHarbour !
Mas quero que fique claro que acho que o pessoal do xHarbour não teve só uma boa idéia com este programa, mas também uma boa intenção.
Mas não deu. Ficou realmente uma porcaria, que mais complica do que explica. E eu sinto muito por isso. Não por mim, porquê eu não perco mais que alguns minutos com esse contra-tempo. Eu sinto mesmo pelo novato que está começando e, de cara, já se depara com essa dificuldade.
[]'s
Maligno
http://www.buzinello.com/prg
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
- Marcos
- Usuário Nível 3

- Mensagens: 355
- Registrado em: 20 Set 2003 09:16
- Localização: Cáceres/Mato Grosso
Erro já.
Maligno eu acho que estou escrevendo o arquivo BAT errado, eu copiei exatamente como vc me passou e está dando os seguintes erros:
Error menu.mak 20: command sintax error
Error menu.mak 22: command sintax error
Error menu.mak 23: command sintax error
Error menu.mak 24: command sintax error
Error menu.mak 25: command sintax error
Error menu.mak 26: command sintax error
*** 6 error durink make ***
Arquivo não encontrado.
ECHO está desativado
ECHO está desativado
Agora veja como eu fiz após pegar o MAKE na sua pagina:
*** M.BAT ***
@cls
make -fmenu -l+ -s -DOPT=/m/n/l -DCOMP=FINAL
@del *.obj
@echo
@echo
*** MENU.MAK ***
menu.exe: FUNCAO.OBJ \
INDEXA.OBJ \
SENHA.OBJ \
DBEDITS.OBJ \
LIBERACA.OBJ \
EMPRESA.OBJ \
CLIENTES.OBJ \
FORNECED.OBJ \
ITENS.OBJ \
CIDADES.OBJ \
FUNCIONA.OBJ \
GRUPOS.OBJ \
TRANSPOR.OBJ \
NATUREZA.OBJ \
SITUACAO.OBJ \
OBSERVAC.OBJ \
VETERINA.OBJ \
cls
blinker @prg.lnk
.prg.obj:
cls
echo
echo Clipper $& $(OPT) -d$(COMP)
Clipper $& $(OPT) -d$(COMP)
*** MENU.LNK ***
nobell
output menu
map=menu s, a
FI MENU
FI FUNCAO
FI INDEXA
FI SENHA
FI DBEDITS
FI LIBERACA
FI EMPRESA
FI CLIENTES
FI FORNECED
FI ITENS
FI CIDADES
FI FUNCIONA
FI GRUPOS
FI TRANSPOR
FI NATUREZA
FI SITUACAO
FI OBSERVAC
FI VETERINA
#
FI MSG
FI CTUSP
FI __WAIT_B
FI TIMESLIC
LIB SEARCH BLXCLP52
LIB VL2_52
LIB SIX2
LIB CLIPPER
LIB EXTEND
LIB OSLIB
LIB CLIPON
LIB CTP
LIB Relogio
LIB EDBF
BLI EXECUTABLE DUAL
BLI CLIPPER PAGE OFF
BLI OVERLAY THRESHOLD 256
BLI CACHE EMS 50%,1024
BLI OVERLAY PAGEFRAME ON
BLI OVERLAY FIXED
BLI OVERLAY UMB OFF
BLI OVERLAY OPSIZE 60
BLI EXE COMPRESS 5
BLI INCREMENTAL OFF
#BLI CACHE XMS 50%,1024
BLI EXE CLIPPER F:250
BLI EXE IPX 48
# BLI EXE REAL # RODANDO EM MEMORIA CONVENCIONAL
BLI EXECUTABLE EXTEND # RODANDO EM MEMORIA ALTA
BLI EXTMEM BLOCK 2048
BLI PROCEDURE DEPTH 140
BLI EXECUTABLE NODELETE
Poderia me ajudar mais uma vez?
Marcos
Error menu.mak 20: command sintax error
Error menu.mak 22: command sintax error
Error menu.mak 23: command sintax error
Error menu.mak 24: command sintax error
Error menu.mak 25: command sintax error
Error menu.mak 26: command sintax error
*** 6 error durink make ***
Arquivo não encontrado.
ECHO está desativado
ECHO está desativado
Agora veja como eu fiz após pegar o MAKE na sua pagina:
*** M.BAT ***
@cls
make -fmenu -l+ -s -DOPT=/m/n/l -DCOMP=FINAL
@del *.obj
@echo
@echo
*** MENU.MAK ***
menu.exe: FUNCAO.OBJ \
INDEXA.OBJ \
SENHA.OBJ \
DBEDITS.OBJ \
LIBERACA.OBJ \
EMPRESA.OBJ \
CLIENTES.OBJ \
FORNECED.OBJ \
ITENS.OBJ \
CIDADES.OBJ \
FUNCIONA.OBJ \
GRUPOS.OBJ \
TRANSPOR.OBJ \
NATUREZA.OBJ \
SITUACAO.OBJ \
OBSERVAC.OBJ \
VETERINA.OBJ \
cls
blinker @prg.lnk
.prg.obj:
cls
echo
echo Clipper $& $(OPT) -d$(COMP)
Clipper $& $(OPT) -d$(COMP)
*** MENU.LNK ***
nobell
output menu
map=menu s, a
FI MENU
FI FUNCAO
FI INDEXA
FI SENHA
FI DBEDITS
FI LIBERACA
FI EMPRESA
FI CLIENTES
FI FORNECED
FI ITENS
FI CIDADES
FI FUNCIONA
FI GRUPOS
FI TRANSPOR
FI NATUREZA
FI SITUACAO
FI OBSERVAC
FI VETERINA
#
FI MSG
FI CTUSP
FI __WAIT_B
FI TIMESLIC
LIB SEARCH BLXCLP52
LIB VL2_52
LIB SIX2
LIB CLIPPER
LIB EXTEND
LIB OSLIB
LIB CLIPON
LIB CTP
LIB Relogio
LIB EDBF
BLI EXECUTABLE DUAL
BLI CLIPPER PAGE OFF
BLI OVERLAY THRESHOLD 256
BLI CACHE EMS 50%,1024
BLI OVERLAY PAGEFRAME ON
BLI OVERLAY FIXED
BLI OVERLAY UMB OFF
BLI OVERLAY OPSIZE 60
BLI EXE COMPRESS 5
BLI INCREMENTAL OFF
#BLI CACHE XMS 50%,1024
BLI EXE CLIPPER F:250
BLI EXE IPX 48
# BLI EXE REAL # RODANDO EM MEMORIA CONVENCIONAL
BLI EXECUTABLE EXTEND # RODANDO EM MEMORIA ALTA
BLI EXTMEM BLOCK 2048
BLI PROCEDURE DEPTH 140
BLI EXECUTABLE NODELETE
Poderia me ajudar mais uma vez?
Marcos
Maligno eu acho que estou escrevendo o arquivo BAT errado, eu copiei exatamente como vc me passou e está dando os seguintes erros:
Código: Selecionar todos
Error menu.mak 20: command sintax error
Error menu.mak 22: command sintax error
Error menu.mak 23: command sintax error
Error menu.mak 24: command sintax error
Error menu.mak 25: command sintax error
Error menu.mak 26: command sintax error
*** 6 error durink make ***
Arquivo não encontrado.
ECHO está desativado
ECHO está desativado
*** M.BAT ***
@cls
make -fmenu -l+ -s -DOPT=/m/n/l -DCOMP=FINAL
@del *.obj
@echo
@echoNote também que eu lhe dei o meu batch para compilação FINAL. Assim, a função da linha "@del *.obj é apagar esses objetos. Apenas como lembrança: se for sua compilação de TESTE, apague ou comente essa linha.
Código: Selecionar todos
*** MENU.MAK ***
menu.exe: FUNCAO.OBJ \
INDEXA.OBJ \
SENHA.OBJ \
DBEDITS.OBJ \
LIBERACA.OBJ \
EMPRESA.OBJ \
CLIENTES.OBJ \
FORNECED.OBJ \
ITENS.OBJ \
CIDADES.OBJ \
FUNCIONA.OBJ \
GRUPOS.OBJ \
TRANSPOR.OBJ \
NATUREZA.OBJ \
SITUACAO.OBJ \
OBSERVAC.OBJ \
VETERINA.OBJ \
cls
blinker @prg.lnk
.prg.obj:
cls
echo
echo Clipper $& $(OPT) -d$(COMP)
Clipper $& $(OPT) -d$(COMP)Agora, com relação ao seu LNK, apesar de você ainda não ter "passado" pelo Make sem erros,...
Código: Selecionar todos
LIB SEARCH BLXCLP52
LIB VL2_52
LIB SIX2
LIB CLIPPER
LIB EXTEND
LIB OSLIB
LIB CLIPON
LIB CTP
LIB Relogio
LIB EDBF
BLI EXECUTABLE DUAL
BLI CLIPPER PAGE OFF
BLI OVERLAY THRESHOLD 256
BLI CACHE EMS 50%,1024
BLI OVERLAY PAGEFRAME ON
BLI OVERLAY FIXED
BLI OVERLAY UMB OFF
BLI OVERLAY OPSIZE 60
BLI EXE COMPRESS 5
BLI INCREMENTAL OFF
#BLI CACHE XMS 50%,1024
BLI EXE CLIPPER F:250
BLI EXE IPX 48
# BLI EXE REAL # RODANDO EM MEMORIA CONVENCIONAL
BLI EXECUTABLE EXTEND # RODANDO EM MEMORIA ALTA
BLI EXTMEM BLOCK 2048
BLI PROCEDURE DEPTH 140
BLI EXECUTABLE NODELETEO comando SEARCH faz a mesma coisa, mas a cada busca em cada LIB, todos os símbolos das LIBs são mantidos em RAM, consumindo espaço e tomando mais tempo de processamento. A idéia por trás disso é: se não encontrou na primeira passada, vai procurar de novo, mas em RAM. Ficará mais rápido do que pesquisar arquivo por arquivo de novo. Isso é verdade. Mas, um erro de "unresolved external" é um evento muito mais raro do que o sucesso nesta busca. Assim, mais se perde tempo do que se ganha. E ainda corre-se o risco de ter algum estouro de memória. E é como eu disse antes: se não encontrou na primeira passada, decerto não encontrará na segunda. Ou terceira, quarta, etc... Portanto, use LIB ao invés de SEARCH. Vai economizar seu tempo e sua memória.
Aliás, veja o que o help diz sobre o uso de SEARCH:
Mais:Use of the SEARCH command should be limited to those cases where it is required, as it slows the linking process, and uses large amounts of memory at link time.
As LIBs CLIPPER e EXTEND, que você mencionou no script, são pesquisadas por default. Você não precisa incluí-las no script. Isso porquê cada objeto criado pelo Clipper tem embutidas referências às LIBs básicas do Clipper, das quais o objeto precisa. De fato, alguns compiladores fazem isso mesmo. Então, você perde seu tempo incluindo-as no script. Elas serão pesquisadas de qualquer forma, uma vez que essa instrução de busca já está no objeto. A não ser que você use o comando NODEFLIB, que instrui o BLinker a não pesquisar as LIBs referenciadas dentro dos objetos. Mas não existe nenhum bom motivo para você usar esse comando.
Mais:
Se você vai montar seu programa para o modo protegido, esqueça tudo o que se refere ao comando OVERLAY. No modo protegido ele não faz mais sentido, uma vez que o programa todo vai residir em RAM alta (extendida). Ou seja, remova os comandos que contém BLI OVERLAY e os tais BLI CACHE... , que só fazem o cacheamento de overlay. Até porquê, os comandos que instruem o uso de overlay, neste seu script, também não fazem sentido porquê você não definiu qualquer área de overlay. Todos os seus objetos, na forma como estão definidos, mesmo que fossem para o uso do modo real (só neste modo overlay faz sentido), residirão na raiz do programa. Então,...
Mais:
Decida. Modo real, dual ou extendido? Use um só. E lembre-se do que eu disse sobre o modo DUAL: aumenta seu executável em +/- 70%. E nem compensa muito, uma vez que a maioria das máquinas hoje dão plenas condições memória para o uso do modo protegido.
Mais:
E o mais importante, aliás. Perca um tempinho lendo o help do BLinker. Investigue os comandos que você está usando no seu script. Você vai encontrar uma literatura bem interessante e muito útil. E claro, vai conhecer as várias opções que o linker oferece. Não só o que diz respeito à montagem, mas também ao uso de algumas de suas funções.
[]'s
Maligno
http://www.buzinello.com/prg
