Página 1 de 1
Como se passa uma diretiva ao compilar?
Enviado: 22 Mar 2011 09:15
por ricardo-barros
Pessoal,
Eu já inseri nos prg do meu sistema as declarações #IfDef __DOS__ para que ele saiba o que fazer quando as funções forem usadas no modo console. Mas não sei como informar isso ao compilar.
Gostaria de saber isso no Harbour e no xHarbour pois ainda não decidi qual dos dois vou utilizar.
Quem sabe aí, por favor me diga.
Re: Como se passa uma diretiva ao compilar?
Enviado: 22 Mar 2011 10:45
por alxsts
Olá!
A informação abaixo funciona no xHarbour. Não posso afirmar que funcione no Harbour mas, acredito que sim pois vem desde o Clipper.
O que você precisa é passar esse parâmetro na compilação:
- se estiver usando HBMake, na seção Opções do xHarbour / User Defines, informe o teu define ( __DOS__ ) .
- se estiver compilando pela linha de comando, use o
switch /d ( /d__DOS__ )
Naturalmente, como você já mencionou, é preciso tratar isto na aplicação:
Código: Selecionar todos
Function Main()
#ifDef __DOS__
Alert( "Versao DOS" )
#else
Alert( "Versao Foo" )
#endif
// comandos comuns às duas versões...
Return NIL
Re: Como se passa uma diretiva ao compilar?
Enviado: 22 Mar 2011 17:54
por ricardo-barros
Obrigado, colega.
Mais alguém poderia dizer como eu faço isso (agora no Harbour 2.0)?
Eu uso o Hbmk2 pra compilar.
Re: Como se passa uma diretiva ao compilar?
Enviado: 22 Mar 2011 18:37
por alxsts
Olá!
Sinceramente nunca usei o HBMk2. Até executei mas não consta nenhum parâmetro relacionado. Com certeza dá para fazer pela linha de comando do Harbour, como escrevi anteriormente
alxsts escreveu:- se estiver compilando pela linha de comando, use o switch /d ( /d__DOS__ )
Vamos aguardar a manifestação dos colegas...
Re: Como se passa uma diretiva ao compilar?
Enviado: 22 Mar 2011 20:13
por asimoes
No harbour faça assim:
No seu PRG:
// #IFDEF VERSAO_DE_TESTE1
// Info("VERSÃO DE TESTE1" )
// #ENDIF
// #IFDEF VERSAO_DE_TESTE2
// Info("VERSÃO DE TESTE2")
// #ENDIF
No HBM:
Código: Selecionar todos
# ---------------------------
# Nome do Executável
# ---------------------------
-oteste
# ---------------------------
# Bibliotecas
# ---------------------------
-llibct
-lhbnf
-lhbwin
# ---------------------------
# Caminho dos Includes
# ---------------------------
-incpath=d:\harbour\bcc\include;
# ---------------------------
# Caminho das Libs da MiniGui
# ---------------------------
-Ld:\minigui\lib
-Ld:\minigui\harbour\lib
# ---------------------------
# Outros Parâmetros
# ---------------------------
-workdir=.\OBJ\
-head=full
-n
-dVERSAO_DE_TESTE1
-dVERSAO_DE_TESTE2
-nowarn
-inc
#-icon=.\IMG\PRINT.ICO
#-icon=clock.ico
# ---------------------------
# Prg(s) e Rc(s)
# ---------------------------
teste
# ---------------------------
# Fim
# ---------------------------
Re: Como se passa uma diretiva ao compilar?
Enviado: 23 Mar 2011 12:52
por ricardo-barros
Obrigado, Asimoes
Eu que prefiro usar arquivos make já tinha feito um para usar com o Hbmk2 porém ele se resumia a uma lista de prgs. Vou usar suas dicas para enriquecê-lo e implantar a diretiva de compilação.
Gostaria de ver também um exemplo para o xHarbour (Hbmake)
Se mais alguém puder colaborar, agradeço.