Compilacion condicional (error diferenciando Unix de Linux)

Agrupa todas las consultas sobre los lenguajes de programacion como C, C++, Python, Java ...

Compilacion condicional (error diferenciando Unix de Linux)

Notapor lacabra25 » Dom Ene 11, 2009 1:56 am

Hola, estoi usando GNU/Linux Ubuntu 8.10 y en un programa intento con compilacion condicional crear una macro con el nombre del sistema en el que halla sido compilado.

Para ello compruebo si esta definida la macro Linux y si existe la macro Unix (entre otras como WIN32), el problema esta en que me aparece como definidas ambas, por lo que no puedo diferenciar con el codigo si se esta compilando en Linux o en Unix o en otro sistema deribado de unix como mac.

¿Como podria solucionar esto, como podria saber en que sistema se esta compilando un programa, o incluso mejor, en cual se esta ejecutando?
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor hugoruscitti » Dom Ene 11, 2009 9:06 pm

El siguiente código te puede servir de ejemplo, las
constantes toman valor en tiempo de compilación, así
que lo siguiente compila de forma diferente en Windows
u otro sistema:

Código: Seleccionar todo
#include <stdio.h>

int main(void)
{
#ifdef WIN32
    printf("Hola, estoy en windows\n");
#else
    printf("Hola, estoy en GNU/Linux u otro sistema \n");
#endif

    return 0;
}
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina


Volver a Sobre lenguajes de programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron