Página 1 de 1
Erro na compilaçäo Unresolved External
Enviado: 19 Jul 2011 08:19
por porter
bom dia,
Estou compilando um pequeno programa como teste, tenhos dois arqs PRG assim:
arquivos HELLOBR.PRG e FUNCOES.PRG
HELLOBR.PRG
Código: Selecionar todos
FUNCTION MAIN
CLEAR
@1,1 SAY "LINHA 1"
@2,1 SAY "LINHA 2"
@3,1 SAY "LINHA 3"
MOSTRA()
RETURN
FUNCOES.PRG
Código: Selecionar todos
FUNCTION FUNCOES
PROCEDURE MOSTRA
@ 10,01 SAY "TESTANDO FUNCAO"
RETURN .T.
Quando compilo, esta dando o seguinte erro:
Unresolved External '_HB_FUN_MOSTRA' referenced C:\HELLO\HELLOBR.OBJ'
Esta dizendo que essa funcao MOSTRA() nao existe, mas ela foi criada em FUNCOES.PRG.
Fiz um teste, se a funcao estiver dentro do PRG que sera chamado, da certo, senao na compilacao da esse erro, gostaria de deixar todas as funcoes no meu caso em FUNCOES.PRG, e dos outros PRG executar essas funcoes que estao dentro de FUNCOES.PRG.
Erro na compilaçäo Unresolved External
Enviado: 19 Jul 2011 08:42
por Jairo Maia
Olá Pórter,
Copie seus exemplos: HELLOBR.PRG e FUNCOES.PRG. Compilei e deu certo. Sequer tirei a linha desnecessária FUNCTION FUNCOES, que vc colocou acima da linha FUNCTION MOSTRA.
Acredito que vc não esteja linkando o arquivo FUNCOES.PRG. Vc editou o script hellobr.exe.xbp e acrescentou este arquivo nele? Vc pode também rodar novamente o XBUILD, seguir os passos que vc já conhece, e acrescentar este arquivo, pq aqui deu tudo certo.
Erro na compilaçäo Unresolved External
Enviado: 19 Jul 2011 09:12
por porter
Acredito que vc não esteja linkando o arquivo FUNCOES.PRG. Vc editou o script hellobr.exe.xbp e acrescentou este arquivo nele? Vc pode também rodar novamente o XBUILD, seguir os passos que vc já conhece, e acrescentar este arquivo, pq aqui deu tudo certo.
Ola,
Estou fazendo da seguinte forma, criei eu arq bat assim:
c:\xharbour\bin\xbuild hellobr.exe.xbp
dentro do arquivo hellobr.exe.xbp, abaixo de TARGETFOLDER, coloquei
[C:\HELLO\*.PRG]
No arquivo FUNCOES.PRG, nao é assim que faz ?
Código: Selecionar todos
FUNCTION FUNCOES
PROCEDURE MOSTRA
@ 20,10 SAY "TESTE"
RETURN .T.
Valeu amigo, obrigado.
Erro na compilaçäo Unresolved External
Enviado: 19 Jul 2011 09:46
por Jairo Maia
Olá Ana,
Obrigado por sua intervenção. Mas acho que está havendo confusão aqui, e só agora percebi. Eu havia feito o teste com base no que o autor tinha postado no tópico: "Dúvida. Aprendendo a compilar". Quando voltei ele havia criado este, e acabei errando ao dar continuidade aqui.
Olá Pórter,
Entendi. Fiz exatamente como vc está fazendo. Não deu nenhum erro, mas não consigo ver o resultado da função Main(), apenas o resultado da função MOSTRA(), mesmo colocando em Main() o comando SetMode( 25, 80 ).
Porém, acresecentando no script o arquivo FUNCOES.PRG, tudo corre normal. Não sei dizer o que está ocorrendo. Vamos aguardar algum colega mais experiente dar alguma dica.
Erro na compilaçäo Unresolved External
Enviado: 19 Jul 2011 11:01
por anacatacombs
No Arquivo funcoes.prg vc precisa apenas
Não precisa declarar
FUNCTION FUNCOES no inicio do prg.
Tente fazer essa alteração e por favor, poste o resultado.
Erro na compilaçäo Unresolved External
Enviado: 19 Jul 2011 12:46
por porter
Entendi. Fiz exatamente como vc está fazendo. Não deu nenhum erro, mas não consigo ver o resultado da função Main(), apenas o resultado da função MOSTRA(), mesmo colocando em Main() o comando SetMode( 25, 80 ).
Ola Jairo Maia,
Agora estou conseguindo compilar sem erro, mas esta acontecendo isso que vc disse, nao vendo o resultado da funcao Main(), apenas o resultado da funcao MOSTRA().
Erro na compilaçäo Unresolved External
Enviado: 19 Jul 2011 16:22
por porter
ola pessoal,
no arquivo HELLOBR.EXE.XBP, abaixo de TARGETFOLDER, ao inves de deixar C:\HELLO\*.PRG, fiz assim
[HELLOBR.PRG]
MYC_FLAGS =
MYDEFINES =
MYPRG_FLAGS =
[FUNCOES.PRG]
MYC_FLAGS =
MYDEFINES =
MYPRG_FLAGS =
Ai deu certo, nao sei se essa é a maneira correta, sera que tem que informar todos os PRGs ?
Erro na compilaçäo Unresolved External
Enviado: 19 Jul 2011 17:06
por Jairo Maia
Olá Pórter,
porter escreveu:Ai deu certo
Acima eu já havia dito isso. Talvez para usar a sugestão do colega Leonardo, precisa mais alguma coisa. Dá a impressão que a função Main() não é executada, não sei.
porter escreveu:sera que tem que informar todos os PRGs ?
Sim!
Nescessariamente Todos.
O que vc pode fazer é simplicficar o script assim:
Se futuramente vc precisar usar alguma definição específica para algum arquivo, basta fazê-lo abaixo do arquivo pretendido.
Erro na compilaçäo Unresolved External
Enviado: 19 Jul 2011 17:49
por porter
Olá Jairo,
Desta forma que vc passou deu certo:
[HELLOBR.PRG]
[FUNCOES.PRG]
obrigado.