Nao consigo compilar mais meu programa (muitos aquivos)

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Nao consigo compilar mais meu programa (muitos aquivos)

Mensagem por ademilson »

Bom tarde Senhores...
Estou com um probleminha aqui, nao estou conseguindo compilar meu programa principal, ele dah um erro na linkagem, tipo blx, chega a criar o executavel, mas, com 0 byte, pois bem, utilizo o blinker 7, tenho um rmk e consequentemente um lnk, ai para eu conseguir compilar, tenho que tirar algum modulo do lnk, ai chamo esse programa que tirei externamente...
No harbour nao tenho esse problema, porem, ainda tenho muitos cliente que utilizam a versao dos.

Alguem sabe se existe algum comando para ser colocado no lnk ou no rmk para resolver este problema.??

Abracos,

Jose Ademilson da Cruz
SG Sistemas de Automacao ltda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Não esqueceu nada? Se a raiz do problema está na montagem do programa, você precisa postar seus scripts, de compilação de linkedição. Senão ficará difícil dizer o que pode estar acontecendo.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Mensagem por ademilson »

Opa, com certeza... desculpe... la vai entaum....

segue o RMK...

.prg.obj:
$(A_CLIP_PATH)CLIPPER $< /n /dTUDO /q >> \new\cmenu.log

menu.obj : \new\menu.prg

menuc.obj : \new\menuc.prg \new\cep005e.prg \new\cep006e.prg \new\cep060e.prg\
\new\cep030e.prg \new\cep031e.prg \new\cep010e.prg \new\cps054.prg\
\new\cep053.prg \new\cep052.prg \new\rcp010.prg \new\rcp030.prg

pdv000.obj : \new\pdv000.prg \new\pdv001.prg \new\pdv002.prg \new\pdv011.prg\
\new\pdv013.prg \new\pdv014.prg \new\pdv017.prg\
\new\pdv018.prg \new\pdv019.prg \new\pdv020.prg

outros modulos....

pdv000x.obj: \new\pdv000x.prg \new\pdv054.prg \new\pdv055.prg \new\pdv056.prg\
\new\pdv057.prg \new\pdv058.prg \new\pdv061.prg \new\pdv062.prg\
\new\pdv070.prg \new\pdv075.prg \new\pdv076.prg \new\pdv086.prg\
\new\pdv084.prg \new\pdv095.prg \new\pdv074.prg \new\pdv035.prg\
\new\pdv065.prg \new\pdv063.prg \new\pdv064.prg \new\pdv053.prg\
\new\pdv071.prg \new\pdv067.prg \new\pdv012.prg \new\pdv069.prg\
\new\pdv005.prg \new\pdv068.prg \new\pdv034.prg \new\pdv046.prg\
\new\pdv042.prg \new\pdv043.prg \new\pdv059.prg \new\pdv052.prg\
\new\pdv051.prg \new\pdv050.prg \new\pdv030.prg \new\pdv077.prg

outros modulos....

.obj.exe:

menu : menu.obj
menuc : menuc.obj
pdv000 : pdv000.obj
pdv000x : pdv000x.obj
$(A_BLIN_PATH)blinker @\new\cmenu.lnk


************************************************
Segue o LNK....


blinker clipper symbol off
blinker executable alignment 256
blinker executable extended
blinker incremental off
blinker overlay pageframe on

file \new\obj53\menu.obj
file \new\obj53\menuc.obj
file \new\obj53\pdv000.obj
file \new\obj53\pdv000x.obj
outros modulos.....

file p:\comp\clipper5\obj\cdxlock.obj
library p:\comp\blinker7\lib\blxclp53.lib
library p:\comp\clipper5\lib\_dbfcdx
library p:\comp\clipper5\lib\dbfcdx
library \new\sgs.lib

output f:\exes\menu.exe


Abracos,
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Com relação à parte da compilação, vejo que você está complicando o que é simples. Veja um pedaço de como poderia ficar mais simples:

Código: Selecionar todos

\dir\seu_exe:      objeto1.obj \
                   objeto2.obj \
                   objeto3.obj \
                   objeto4.obj \
                   objeto5.obj 
 cls
 blinker @prg.lnk

.prg.obj:
 cls
 $(A_CLIP_PATH)CLIPPER $< /n /dTUDO /q >> \new\cmenu.log
Veja que a lista de objetos pode ser mais facilmente manipulada se estiver em ordem alfabética. Como a escala de dependência se dá em relação ao EXE e depois ao objeto, qualquer modificação em qualquer fonte já forçará a recompilação do fonte alterado. Fica bem mais simples. De qualquer forma, não vi nada de errado no seu script. Você pode manter do jeito que está, se preferir. Só estou dando uma dica para simplificação. Muito embora, você pudesse suprimir as informações de nomes de diretórios apenas compilando no próprio diretório dos fontes. Fica a sugestão.

Com relação à linkedição, mesma coisa: parece estar tudo certo, a não ser pelos três comandos:

Código: Selecionar todos

blinker clipper symbol off 
blinker executable alignment 256 
blinker overlay pageframe on 
Como seu programa está sendo gerado para o modo protegido, você não terá qualquer efeito com qualquer coisa relacionada a overlay. O BLinker simplesmente ignora isso. Veja o help.
Mas as duas primeiras linhas são necessárias? Tente comentá-las pra ver como o processo transcorre.

Na parte das LIBs só ficou a dúvida com relação à essa SGS.LIB. Ela é sua? Sendo ou não, ela precisa estar preparada para o modo protegido. Senão, é pau na certa.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Mensagem por ademilson »

Bom Dia...

Maligno, a SGS.LIB é minha mesmo, mas, nao entendi direito, para gera-la eu somente a compilo... nao linko ela com nada, entende?

Eh estava dando uma olhada aki na documentacao, realmente a linha do pageframe nao precisa mesmo, pois, o ON ja o default... a Questao do ALIGNMENT é necessario pois meu executavel ultrapassa 10 megas... Agora a primeira linha estou pesquisando ainda sobre sua necessidade ou nao... Ja comentei a primeira linha e tentei compilar, mas, negativo, sem sucesso...


abracos,

Jose Ademilson da Cruz
Gerente de programacao
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Maligno, a SGS.LIB é minha mesmo, mas, nao entendi direito, para gera-la eu somente a compilo... nao linko ela com nada, entende?
Nem poderia. Senão, não seria uma LIB. :)

O tal erro BLX tem qual código?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Mensagem por ademilson »

ela precisa estar preparada para o modo protegido. Senão, é pau na certa.
Nem poderia. Senão, não seria uma LIB. :)
Pois é, mas, entao que tipo de analise tenho que fazer para dizer se ela esta preparada ou nao??


Segue o Erro...

BLX286 : 1302 : DPMI function call 0000h failed with error code 0000h
AX=0000 BX=0350 CX=0001 DX=0350

Dai ele chega a criar o executal, porem esta com 0 bytes

Abs,
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Segue o Erro...

BLX286 : 1302 : DPMI function call 0000h failed with error code 0000h
AX=0000 BX=0350 CX=0001 DX=0350

Dai ele chega a criar o executal, porem esta com 0 bytes
Mas se o seu programa está retornando esse erro, certamente ele não pode ter tamanho 0. Senão nem executaria. O erro parece ser uma GPF, mas GPF costuma gerar um texto grande, que enche a tela toda. Ou você cortou uma parte?

Agora, se for GPF mesmo, está relacionado ao modo protegido. Significa que alguma coisa no seu programa não está preparada para trabalhar nesse modo. Então, isso me leva a crer que há mais alguma outra biblioteca que você se esqueceu de mencionar ou sua LIB SGS pode conter alguma função em baixo nível (C ou ASM) não preparada para o modo protegido.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Mensagem por ademilson »

Mas se o seu programa está retornando esse erro, certamente ele não pode ter tamanho 0. Senão nem executaria.
Ele nao executa mesmo... o arquivo é somente criado com 0 bytes, esse erro que vc mencionou de aparecer escrito na tela toda ja aconteceu comigo, mas ai o programa estava rodando, neste caso era problema de indice...

abs,
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Mas quando você compila aparece algum erro? Se sim, qual?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Mensagem por ademilson »

Na compilacao nao, esse erro da quando esta linkando...
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Sim, mas qual erro, exatamente?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Mensagem por ademilson »

Exatamente este, do blx.... posso tirar um print da tela se for o caso...
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

posso tirar um print da tela se for o caso...
Por favor.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Mensagem por ademilson »

Maligno, mandei neste e-mail aki que vi na sua pagina, OK... pbuzinello@ibestvip.com.br

abs,
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Responder