Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] problemi compilazione con dev-cpp su windows 7

    Giorno a tutti...Passo subuti ha descrivermi il mio problema come da titolo devo compilare un un programma scritto in c++ con dev-cpp che gira su windows 7 professional ...ma quando vado a compilare il compilatore mi restituisce dei messaggi con degli errori che nn riesco a risolvere ...tengo a specificare che la compilazione su windows xp e linux ubuntu avviene in maniera eccellente... :master:

    codice sorgente

    file .h

    #ifndef FRACTION_H
    #define FRACTION_H

    class fraction {
    private :
    int n,d;
    void reduce();
    public :
    int get_numerator();
    int get_denominator();
    int set_numerator(int w);
    int set_denominator(int w);
    bool is_pos();
    fraction (int a, int b);
    fraction sum(const fraction&c);
    fraction sub(const fraction&c);
    fraction mul(const fraction&c);
    fraction div(const fraction&c);
    };
    #endif

    file .cpp

    #include "fraction.h"
    #include <iostream>
    #include <cstdlib>
    using namespace std;

    void fraction :: reduce( )
    {
    int k;
    int num=n;
    int den=d;
    if (num < 0)
    num = num*(-1);
    if (den < 0)
    den = den * (-1);
    while(num>0)
    {
    if (den>num)
    {
    k=den;
    den=num;
    num=k;
    }
    num=num-den;
    }
    n=n/den;
    d=d/den;
    if ((n<0 && d<0)||(n>0 && d<0))
    {
    n=n*(-1);
    d=d*(-1);
    }
    };

    fraction :: fraction (int a=1,int b=1)
    {
    n=a;
    d=b;
    reduce();
    };
    bool fraction :: is_pos()
    {
    bool pos;
    if (n>0)
    pos = true;
    else
    pos = false;
    return pos;
    };
    int fraction :: get_numerator()
    {
    return n;
    };
    int fraction :: get_denominator()
    {
    return d;
    };
    fraction fraction :: sum(const fraction&c)
    {
    fraction ris;
    ris.d=d*c.d;
    ris.n=(ris.d/d*n)+(ris.d/c.d*c.n);
    ris.reduce();
    return ris;
    };
    fraction fraction :: sub(const fraction&c)
    {
    fraction ris;
    ris.d=d*c.d;
    ris.n=(ris.d/d*n)-(ris.d/c.d*c.n);
    ris.reduce();
    return ris;
    };
    fraction fraction :: mul(const fraction&c)
    {
    fraction ris;
    ris.n=this->n*c.n;
    ris.d=this->d*c.d;
    ris.reduce();
    return ris;
    };
    fraction fraction :: div(const fraction&c)
    {
    fraction ris;
    ris.n=this->n*c.d;
    ris.d=this->d*c.n;
    ris.reduce();
    return ris;
    };
    int fraction :: set_numerator(int w)
    {
    n = w;
    reduce();
    };
    int fraction :: set_denominator(int w)
    {
    d = w;
    reduce();
    };

    funzione principale (main) .cpp

    #include <iostream>
    #include <cstdlib>
    #include "fraction.h"
    using namespace std;

    int main()
    {
    fraction o(-5,8);
    fraction g(-3,2);
    cout<<o.is_pos()<<endl;
    fraction x = o.sum(g);
    cout<<x.get_numerator()<<"/"<<x.get_denominator()<<endl;
    fraction y = o.sub(g);
    cout<<y.get_numerator()<<"/"<<y.get_denominator()<<endl;
    fraction z = o.mul(g);
    cout<<z.get_numerator()<<"/"<<z.get_denominator()<<endl;
    fraction k = o.div(g);
    cout<<k.get_numerator()<<"/"<<k.get_denominator()<<endl;
    k.set_numerator(2);
    cout<<k.get_numerator()<<"/"<<k.get_denominator()<<endl;
    k.set_denominator(2);
    cout<<k.get_numerator()<<"/"<<k.get_denominator()<<endl;
    system("PAUSE");
    return 0;
    }

    messaggio di errore restituito ...

    Compilatore: Default compiler
    Esecuzione di g++.exe...
    g++.exe "C:\Users\Maurizio\Desktop\tda\tda.cpp" -o "C:\Users\Maurizio\Desktop\tda\tda.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x142):tda.cpp: undefined reference to `fraction::fraction(int, int)'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x15d):tda.cpp: undefined reference to `fraction::fraction(int, int)'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x168):tda.cpp: undefined reference to `fraction::is_pos()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x19d):tda.cpp: undefined reference to `fraction::sum(fraction const& )'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x1ae):tda.cpp: undefined reference to `fraction::get_denominator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x1bb):tda.cpp: undefined reference to `fraction::get_numerator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x209):tda.cpp: undefined reference to `fraction::sub(fraction const& )'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x21a):tda.cpp: undefined reference to `fraction::get_denominator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x227):tda.cpp: undefined reference to `fraction::get_numerator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x275):tda.cpp: undefined reference to `fraction::mul(fraction const& )'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x286):tda.cpp: undefined reference to `fraction::get_denominator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x293):tda.cpp: undefined reference to `fraction::get_numerator()'

    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x2e1):tda.cpp: undefined reference to `fraction::div(fraction const& )'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x2f2):tda.cpp: undefined reference to `fraction::get_denominator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x2ff):tda.cpp: undefined reference to `fraction::get_numerator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x34e):tda.cpp: undefined reference to `fraction::set_numerator(int)'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x359):tda.cpp: undefined reference to `fraction::get_denominator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x366):tda.cpp: undefined reference to `fraction::get_numerator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x3b5):tda.cpp: undefined reference to `fraction::set_denominator(int)'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x3c0):tda.cpp: undefined reference to `fraction::get_denominator()'
    C:\Users\Maurizio\AppData\Local\Temp/cc4ecaaa.o(.text+0x3cd):tda.cpp: undefined reference to `fraction::get_numerator()'
    collect2: ld returned 1 exit status

    Esecuzione terminata

    ringrazio anticipatamente chiunque posso darmi una mano a risolvere questo problema ...

  2. #2

  3. #3
    potresti spiegarmi meglio ...io quando compilavo sotto linux utilizzavo la compilazione dei file separata ...generavo il file oggetto di file.cpp e poi compilavo il main con il file oggetto ... sinceramente con il dev-cpp io vado a compilare il main del programma ma mi ristituisce gli errori citati prima ...molto probabilmente sbaglio proprio le cose primarie della compilazione in dev-cpp potresti chiarire meglio quello quello che mi hai detto prima ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    151
    Aggiungi al progetto il file "fraction.cpp"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.