Página 1 de 1

BLINKER7 + CLD (DEBUG) - Como configurar?

Enviado: 05 Dez 2007 14:38
por fabianocbrito
Boa tarde colegas.

Utilizava o blinker 3.30 para compilar meus aplicativos em clipper. Daí, tenho uma aplicação com cerca de 1.3 MB de tamanho rodando normalmente, mas estou com um problema, não estou conseguindo RODAR ela com o CLD (debug). Está dando erro 5305: Conventional memory exhausted quando a executo com o debug, claro que, por falta de memória convencional. Dando uma pesquisada aqui no forum ouvi algumas pessoas dizerem que o blinker 7 é o melhor, que até compacta a aplicação. Pensei, se compacta, pode estar aí a minha solução para rodar com o CLD. Daí, pesquizei na net e baixei o BLINKER 7 e instalei-o. (achei interessante pois ele vem com um arquivo de instalação).

Agora, gostaria de saber qual a melhor forma de compilar as minhas aplicações com o blinker7 (parametros), e como fazer para funcionar com o CLD, pois, pesquisando aqui no forum, vi algumas dicas e até estou conseguindo rodar com o CLD, mas não está 100%, pois está abortando a aplicação com o erro: "BLX286 : 1313 : exception error 0D : general protection fault".

Segue um exemplo do .RMK e do .LNK que estou utilizando.

MEUPROGRAMA.RMK
princ.obj : lab.prg edicao.prg
clipper @princ /m /n /b

princ1.obj : edicao1.prg menus.prg relat.prg
clipper @princ1 /m /n /l

subrot.obj : subrot.prg
clipper subrot /m /n /w /a /v /l

result1.obj : result1.prg
clipper result1 /m /n /l

res1.obj : result2.prg result3.prg
clipper @res1 /m /n /w /l

MEUPROGRAMA.LNK
// a versao mais nova do blinker eh a 7.0 - http://pub.buzinello.com/index.php?d=./ ... compilers/
BLINKER EXECUTABLE EXTEND
//BLINKER EXECUTABLE COMPRESS 1
BLINKER INCREMENTAL OFF
BLINKER OVERLAY UMB ON
BLINKER OVERLAY OPSIZE 40
BLI EXE CLI //F:240 //DYNF:8 //SWAPK:65535 //SWAPPATH:"C:\TEMP" //TEMPPATH:"C:\TEMP"

output MEUPROGRAMA.exe

beginarea
file princ
file princ1
file subrot
file result1
file timeslic
allocate extend
endarea
LIB c:\blinker\lib\BLXCLP52.LIB //lib do blinker
lib c:\clipper5\lib\clipper.lib
FILE C:\CLIPPER5\LIB\CLD.LIB


Será que vcs podem me dar umas dicas sobre como compilar da melhor maneira possível com o BLINKER7 + CLD????

Antecipadamente agradeço!
OBRIGADO!

Ninguém tem uma dica?

Enviado: 11 Dez 2007 10:02
por fabianocbrito
Bom dia!

Ninguém tem uma dica e/ou exemplo de como configurar os arquivos .RMK e .LNK para compilar usando o BLINKER7, com ou sem a utilização do DEBUG CLD?

Att.
Fabiano

Enviado: 11 Dez 2007 10:17
por Augusto
Parceiro... eu gostaria muito de te ajudar... mas eu não uso o RMK... uso CLP e meu LNK é diferente do que a maioria do pessoal aqui sugere....
Nunca tive problemas...

Enviado: 11 Dez 2007 10:40
por Maligno
Augusto, o colega quando diz .RMK e .LNK está se referindo ao make e ao linker. Se não me falha a já muito gasta memória, o RMAKE e o MAKE (Borland, MS, etc) têm sintaxes equivalentes.

Enviado: 11 Dez 2007 10:59
por Augusto
Maligno escreveu:Augusto, o colega quando diz .RMK e .LNK está se referindo ao make e ao linker. Se não me falha a já muito gasta memória, o RMAKE e o MAKE (Borland, MS, etc) têm sintaxes equivalentes.
Eu entendi grade Maligno... eu só quis dizer que o os meus "scripts" 'são diferentes da maioria... não muito... mas são...

Re: Ninguém tem uma dica?

Enviado: 11 Dez 2007 11:02
por Maligno
fabianocbrito escreveu:Ninguém tem uma dica e/ou exemplo de como configurar os arquivos .RMK e .LNK para compilar usando o BLINKER7, com ou sem a utilização do DEBUG CLD?
Nem tinha visto sua mensagem. :)

Um exemplo de script para o Make (ou RMake - deve funcionar, a não ser pelos switches de linha de comando - tem que verificar):

Código: Selecionar todos

d:\dir\seu_prog.exe:     fonte01.obj \
                         fonte02.obj \
                         fonte03.obj \
                         fonte04.obj \
                         fonte05.obj \
                         fonte06.obj \
                         fonte07.obj \
                         fonte08.obj \
                         fonte09.obj \
                         fonte10.obj 

 cls
 blinker @prg.lnk

.prg.obj:
 cls
 clipper $& $(OPT) -d$(COMP)
Observe que você só precisa definir uma única vez os nomes dos fontes. Nas três últimas linhas o Make consegue relacionar as dependências, comparando data/hora dos arquivos fontes listados acima, com seus respectivos objetos, e invocar o compilador quando necessário. Ao terminar, ele faz a última comparação de data/hora entre esses objetos e o EXE indicado na primeira linha, para então invocar o linker a executar o script PRG.LNK, se necessário.
Os símbolos esquisitos $(OPT) -d$(COMP) servem para você indicar alguns argumentos para o compilador, através da linha de comando do Make. O primeiro símbolo, OPT, eu uso para passar os argumentos para o Clipper. E o segundo, COMP, é o tipo de compilação que eu uso (WORK ou FINAL). Esse último é um símbolo testado no programa (#IF / #ENDIF). Você pode descartar isso, se não for necessário. Portanto, uma linha de comando típica para usar esse script serial algo mais ou menos assim:

Código: Selecionar todos

make -fprg -l+ -s -DOPT=/m/n/p/b -DCOMP=WORK
Ou seja, com -fprg digo ao Make que o script se chama PRG.LNK. O switch -l+ é pro Make saber que minha linha de comando é longa (dá pau no XP se não tiver isso). O switch -s só serve pra manda o Make ficar quieto, sem imprimir nada. A partir daí vem os argumentos finais. O tal de -DOPT=/m/n/p/b é para que o Make troque o símbolo OPT pela lista que eu passei. Ou seja, a lista de switches /m/n/p/b, utilizada pelo Clipper. E pelo último argumento, também pelo tal -D, eu mando ele trocar o símbolo COMP pela palavra chave WORK. Resumo: note que há uma simples substituição de símbolos.

Para o que diz respeito ao linker, há um monte de scripts no fórum. É só você fazer uma busca que você vai encontrar. Depois, ainda havendo alguma dúvida, poste uma nova mensagem. Só com relação ao debugger, note que ele, apesar de ser uma LIB, deve ser informado como um arquivo comum. Ou seja, através do comando FILE CLD.LIB.