Fatal C3007 Can't open #include file: 'key.ch

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

vromarques
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 25 Fev 2010 14:17
Localização: Paraná

Fatal C3007 Can't open #include file: 'key.ch

Mensagem por vromarques »

Boa tarde amigos!

Sou programador COBOL, mas ja fiz um cursinho de Clipper tempos atráz.
Estou tentando ajudar um cliente, que tem um programa de representante em Clipper 5.3b, pois deu pau quando entrou no ano de 2010.
Ja identifiquei o problema e ja fis a correção que era e questão de trabalhar com 4 digitos no ano. O programador dele nao da mais suporte a ele ou seja descontinou totalmente o programa e entregou os fontes ao cliente. Mas alguns arquivos ela nao enviou como por exemplo o arquivo citado acima: Key.ch. O cliente ligou para ele, mas ele diz que nao tem mais nada referente a estes arquivos.
Pelo que pude notar que este arquivo e uma função, tipo Inkey.ch, mas até agora achei solução para poder recompilar sem o devido arquivo.
Isolei o Key.ch e compilei o retorno foi o seguinte:

C:\CLIP53\BIN>clipper nota
348K available
Compiling NOTA.PRG
Code size 33185, Symbols 5536, Constants 12767

C:\CLIP53\BIN>if not errorlevel 1 exospace file nota
Reading object files and library headers.
Processing library directories.
Extracting library objects.
Unresolved externals...
"ABRIU" in module (NOTA)
"APB" in module (NOTA)
"BIP" in module (NOTA)
"BUF" in module (NOTA)
"CENTRO" in module (NOTA)
"CLIOBS" in module (NOTA)
"CONFIRMA" in module (NOTA)
"DECRIP" in module (NOTA)
"DIREITA" in module (NOTA)
"EDITA" in module (NOTA)
"GETID" in module (NOTA)
"INPUT2" in module (NOTA)
"JANELA" in module (NOTA)
"MENSA2" in module (NOTA)
"MOUSE" in module (NOTA)
"MOUSEAREA" in module (NOTA)
"OP" in module (NOTA)
"PROG_DADOS" in module (NOTA)
"PROG_TELA" in module (NOTA)
"READBUTTON" in module (NOTA)
"READINI" in module (NOTA)
"READMEMO" in module (NOTA)
"SENDESC" in module (NOTA)
"TRAVOU" in module (NOTA)
"TRAVOUF" in module (NOTA)
"UPD" in module (NOTA)
"WAITING" in module (NOTA)
"WRITEINI" in module (NOTA)
ERROR(#4045): Total: 28 unresolved symbols.

ERROR(#4056): Abort error level exceeded.

Agradeço muito se puderem me ajudar.

Sds.

Vanderlei R. Marques



---
Nota da Moderação (Maligno):
O presente tópico foi movido da seção "Contribuições, Dicas e Tutoriais", uma vez que seu conteúdo está em divergência com os objetivos daquela seção, onde só podem constar OFERTAS de dicas e truques e discussões sobre o material apresentado.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Fatal C3007 Can't open #include file: 'key.ch

Mensagem por Maligno »

Olá.
Seja bem-vindo ao fórum. :)


Acho que é possível que você não tenha o compilador completo. A versão 5.3 não é a que eu usava. Mas é possível que o tal arquivo "KEY.CH" seja, na verdade, "INKEY.CH". Pela extensão vê-se que é um arquivo de cabeçalho, que deve conter algumas macros relacionadas a teclado. Você pode baixar o compilador do meu site clicando aqui.

Mas a lista de "unresolved external" diz respeito a símbolos que só podem pertencer ao programa. Não são do compilador.
[]'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!
vromarques
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 25 Fev 2010 14:17
Localização: Paraná

Re: Fatal C3007 Can't open #include file: 'key.ch

Mensagem por vromarques »

Maligno, muito obrigado por seu retorno.

Quanto ao arquivo inkey.ch, tenho ele junto a biblioteca do clipper instalado, até ja mudei o nome no fonte NOTA, de key.ch para inkey.ch, mas observo que na compilação isolando o arquivo key.ch, varios nomes de Unresolved externals, estão citados em português como se o programador criou funções ou renomeou, como por exemplo:
"ABRIU" in module (NOTA)
"TRAVOU" in module (NOTA)
"CONFIRMA" in module (NOTA).

Vanderlei R Marques
vromarques
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 25 Fev 2010 14:17
Localização: Paraná

Re: Fatal C3007 Can't open #include file: 'key.ch

Mensagem por vromarques »

Maligno,
Estou enviando em anexo o programa NOTA, se puder analisar o programa lhe agradeço.


Sds.

Vanderlei R. Marques
nota.prg
Unresolved externals...
Unresolved externals...
Unresolved externals...
Unresolved externals... "ABRIU" in module (NOTA) etc...
(71.23 KiB) Baixado 189 vezes
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Fatal C3007 Can't open #include file: 'key.ch

Mensagem por Maligno »

Essas funções certamente são parte do trabalho do programador que fez o sistema. Não são do sistema. Esses "unresolved external" são erros de tempo de ligação. O linker não encontrou esses símbolos após o processo de busca por OBJs, LIBs, etc. Você deve ter aí um BATch de compilação ou algo do tipo. Deve estar faltando compilar esses fontes.Ou eles estão em outro diretório, que o linker não consegue alcançar.
[]'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
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Fatal C3007 Can't open #include file: 'key.ch

Mensagem por Maligno »

Olhei o arquivo. Mas ele não é único. Deve ter mais arquivos fontes vinculados a este programa. Um exemplo é o símbolo "ABRIU", que é nome de uma função que não consta nesse fonte. Logicamente, ela está declarada em outro arquivo PRG. Você deve tê-los aí. Não tem um arquivo BATch qualquer?



PS: É um programa de emissão de NF? Se for, me parece que não tem controle de estoque. Se não tiver mesmo, fique atento. A Receita Estadual não permite o uso de software apenas para emissão de NF. Obrigatoriamente você deve ter um controle de estoque completo, com o recurso de exportação para o SINTEGRA. Sem isso, corre-se o risco de autuação e cassação de AIDF.
[]'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!
vromarques
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 25 Fev 2010 14:17
Localização: Paraná

Re: Fatal C3007 Can't open #include file: 'key.ch

Mensagem por vromarques »

Maligno,

o sistema e um controle gerencial, ele nao emite nota e apenas um controle de pedidos, pois este cliente e um representante.
Realmente tem o programa principal : neo.prg, e outros estou lhe enviando todos, esperando nao abusar se sua boa vontade.

Observando o que voce me disse, sobre as funçoes estar em outro programa, pude observar que no programa BOOK.PRG, estão definidas, mas nao entendi como fazer esta ligação e o que tem a haver com o arquivo key.ch. É possivel deste program book.prg, ele ter gerado um key.ch? Pois quando tiro a linha #include key.ch, que as fuções nao encontradas aparecem na compilação!!??.

Vanderlei R, Marques.
neo.prg
Programa principal
(29.99 KiB) Baixado 138 vezes
cadastro.prg
cadastro
(23.09 KiB) Baixado 137 vezes
book.zip
Neste programa me parece que estao as funcoes
(28.41 KiB) Baixado 199 vezes
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Fatal C3007 Can't open #include file: 'key.ch

Mensagem por Maligno »

Se forem apenas esses três, é fácil:

Código: Selecionar todos

clipper neo
clipper cadastro
clipper book
rtlink file neo,cadastro,book
De forma bem resumida os comandos de linha são esses. Como eu disse, não é essa a versão que eu utilizava, mas partindo da que conheço e observando o fonte principal, acho que só isso já pode até resolver o problema e gerar o EXE. A não ser, claro, que haja dependência de alguma biblioteca externa. Isso você vai descobrir em link-time.
[]'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!
vromarques
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 25 Fev 2010 14:17
Localização: Paraná

Re: Fatal C3007 Can't open #include file: 'key.ch

Mensagem por vromarques »

Bom dia caro amigo Maligno!

Fiz um bat de acordo com sua instrução, trocando apenas o RTLINK por EXOSPACE, pois observei que nesta versao me parece que para linkar é utilizado o EXOSPACE, baseando na versao do clipper que o programador gerou o .EXE atual, o resultado foi o seguinte,:

ExoSpace for CA-Clipper 5.3
Copyright (c) 1993 - 1995 Computer Associates International, Inc.

DOS/16M Copyright (c) Tenberry Software, Inc. 1987 - 1995

EXO1 - General Linking Utility (for CA-Clipper ExoSpace). V2.11
Copyright (c) Tenberry Software, Inc. 1987 - 1994

Reading object files and library headers.
ERROR(#4029): File(BOOK) Multiple definition of "BOOK" from
file "NEO".
ERROR(#4056): Abort error level exceeded.


EXOSPACE error : link failed - .EXE not created (2)

Parece que há uma multi definição de "BOOK" tentei analisar, mas nao vi esta dupla definicao.

Vanderlei R. Marques.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Fatal C3007 Can't open #include file: 'key.ch

Mensagem por rochinha »

Amiguinho,

modifique seu .BAT para o seguinte:

Código: Selecionar todos

clipper neo /m
clipper cadastro /m
clipper book /m
rtlink file neo,cadastro,book
Acrescente p /M para compilar cada módulo em separado, senão acontece o erro de duplicação de código.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Fatal C3007 Can't open #include file: 'key.ch

Mensagem por Pablo César »

Pelo que ja ví dos arquivos que me foram enviados, a compilação era feita pelo ExoSpace, o que ja deu certo a compilação. No entanto se pudermos passar para Blinker, seria melhor.

Você Vanderlei está pedindo-me para incluir mais um arquivo prg que antes não constava, mas se você reparar esse arquivo tem funções que estão sendo repetidas em Nota.prg e Neo.prg. Temos que ter certeza o que está ocorrendo, se você relatasse com detalhes, baseado no ultimo executável que foi recreado, pode recompor e até corrigir os bugs do milénio e outros também. Mas se ficarmos dando tiro no escuro, vamos ficar muito tempo. Estou no chat aguardanmdo por você para esclarecer melhor a situação.

Com respeito ao #include file: 'key.ch, por enquanto tirei fora, por não ter esse arquivo disponível e até adaptei para que aceitasse o inkey.ch que o Clipper tem como default.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder