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

Código: Selecionar todos

PROCEDURE MOSTRA()
@ 20,10 SAY "TESTE"
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:

Código: Selecionar todos

[HELLOBR.PRG]
[FUNCOES.PRG]
[etc...]
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.