Math.c e Ubuntu

di il
3 risposte

Math.c e Ubuntu

Ciao a tutti. Ho un codice scritto in C++ ('.cpp') che si compila senza problemi su windows. Quando vado a compilarlo in Ubuntu però (gcc 4.4) mi da il seguente errore:
  • Prog.cpp:39: error: ‘min’ was not declared in this scope
    Prog.cpp:40: error: ‘max’ was not declared in this scope
Il 'min' e 'max' dovrebberò essere nella libreria math.h (non sono un'esperto di C++). Cercando su internet ho visto alcuni che consigliavano di includere:
  • #include <algorithm>
oppure di compilare aggiungendo '-lm'. In entrambi i casi ottengo sempre lo stesso risultato.
Sapete come posso risolvere? E nel caso, come posso modificare il min e il max usando un ciclo IF?Cioè qual'è codice sostituisco a min e max?

Grazie

3 Risposte

  • Re: Math.c e Ubuntu

    
    #define min((a),(b))  ((a)<(b))?(a):(b)
    
  • Re: Math.c e Ubuntu

    skynet ha scritto:


    
    #define min((a),(b))  ((a)<(b))?(a):(b)
    
    L'ho messo all'inizio del codice, dopo gli include,ma continua a darmi lo stesso errore. Il pezzo di codice che dovrei andare a modificare è:

    xyz =min(h[n*4+0],h[s*4+2]);
  • Re: Math.c e Ubuntu

    Prova così
    
    #ifndef MIN
    #define MIN(x, y) ((x<y)? (x): (y))
    #define MAX(x, y) ((x>y)? (x): (y))
    #endif
    
    usa MIN invece che min
Devi accedere o registrarti per scrivere nel forum
3 risposte