utikawa
(usa Ubuntu)
Enviado em 15/01/2008 - 07:16h
Segue abaixo um site falando sobre diretivas de compilação, incluindo uma parte sobre compilação em mais de um SO:
http://www.linuxdicas.com.br/section-viewarticle-226.html
No exemplo neste site apresenta o seguinte código:
#define LINUX
/* #define DOS */
#ifdef LINUX
printf("Para Linux!");
#else
printf("Para DOS!");
#endif
Este código faz o seguinte: caso houve a definição de LINUX, o programa exibirá a mensagem "Para Linux" e, caso contrário, será exibida a mensagem "Para DOS". Assim basta comentar ou descomentar a linha que define LINUX para que o seu programa seja compilado com instruções específicas para um ou outro SO. Um código um pouco mais completo seria:
#define LINUX
/* #define DOS */
#if defined(LINUX)
printf("Para Linux!");
#elif defined(DOS)
printf("Para DOS!");
#else
#error SO nao suportado
#endif
Assim, caso não seja selecionado um SO, o compilador irá gerar um erro.
Existem ainda algumas definições que o próprio compilador gera indicando o sistema operacional em que está sendo compilado porém estas definições variam de compilador para compilador e portanto podem ocorrer problemas se você resolver mudar o seu compilador ou mesmo se ele for atualizado e mudar alguma dessas definições.
Caso tenha mais dúvidas é só falar!