Fatal C3007 Can't open #include file: 'key.ch
Moderador: Moderadores
-
vromarques
- 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
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.
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.
Re: Fatal C3007 Can't open #include file: 'key.ch
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.
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!
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

- Mensagens: 5
- Registrado em: 25 Fev 2010 14:17
- Localização: Paraná
Re: Fatal C3007 Can't open #include file: 'key.ch
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
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

- Mensagens: 5
- Registrado em: 25 Fev 2010 14:17
- Localização: Paraná
Re: Fatal C3007 Can't open #include file: 'key.ch
Maligno,
Estou enviando em anexo o programa NOTA, se puder analisar o programa lhe agradeço.
Sds.
Vanderlei R. Marques
Estou enviando em anexo o programa NOTA, se puder analisar o programa lhe agradeço.
Sds.
Vanderlei R. Marques
Re: Fatal C3007 Can't open #include file: 'key.ch
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!
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!
Re: Fatal C3007 Can't open #include file: 'key.ch
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.
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!
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

- Mensagens: 5
- Registrado em: 25 Fev 2010 14:17
- Localização: Paraná
Re: Fatal C3007 Can't open #include file: 'key.ch
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.
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.
Re: Fatal C3007 Can't open #include file: 'key.ch
Se forem apenas esses três, é fácil:
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.
Código: Selecionar todos
clipper neo
clipper cadastro
clipper book
rtlink file neo,cadastro,book[]'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!
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

- Mensagens: 5
- Registrado em: 25 Fev 2010 14:17
- Localização: Paraná
Re: Fatal C3007 Can't open #include file: 'key.ch
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.
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.
- rochinha
- 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
Amiguinho,
modifique seu .BAT para o seguinte:
Acrescente p /M para compilar cada módulo em separado, senão acontece o erro de duplicação de código.
modifique seu .BAT para o seguinte:
Código: Selecionar todos
clipper neo /m
clipper cadastro /m
clipper book /m
rtlink file neo,cadastro,book
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- Pablo César
- 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
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.
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.
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.
