hbmk2: Warning: Ignoring explicitly specified core library: hbcpage (in option
'-lhbcpage' in TESTEN.HBM:17)
warning = aviso = não chega a ser erro
Significa que está indicando uma lib que faz parte do core, e por isso já entra automaticamente, indicar na linquedição significa duplicar a indicação.
hbmk2: Warning: Deprecated compatibility option: '-nowarn' in TESTEN.HBM:55.
Use '-warn=no' instead.
Significa que é uma opção que se tornou obsoleta, antiga, que continua existindo só pra compatibilidade.
Pelo que entendi, mudou de -nowarn para -warn=no
Pelo nome, -warn=no acho que é pra NÃO mostrar avisos, como os anteriores
Sobre as LIBs não encontradas, elas são procuradas nas pastas padrão.
Se estiverem em pastas diferentes, precisa indicar o nome da pasta usando -L
-Lpastalib
Se for Harbour, melhor indicar o HBC das LIBs, se for XHarbour, indica o -L mesmo, já que não vai ter HBC pronto.
Importante:
Provavelmente está compilando com -w0 -es0
Desse jeito não mostra os erros de constantes, aqueles nomes declarados em #include "xxxx.ch"
Se tiver usado sem o #include, vai dar erro em execução
Traduzindo:
IF LastKey() == K_ESC
Se no fonte não tem #include "inkey.ch", vai dar erro na execução dizendo que a variável K_ESC não existe, e na compilação não tem aviso, porque o compilador não sabe do que se trata.
-w3 -es2 seria melhor, mas como vai verificar todas as variáveis e não só as constantes, não vai ser rápido pra acertar todos os fontes - pode demorar meses pra fazer isso.