Undefinded reference to - gdzie jest błąd?

0

Witam.

Wyświetla mi się komunikat w trakcie kompilacji :

Undefined reference to : (nazwa funkcji), nie mam pojecia gdzie jest błąd.

Poniżej kod :
main

#include "funkcje.hpp"

#include <iostream>



using namespace std;

int main()
{
    int a,b,wezly;
    int wybor_funckji, wybor_wczyt;
    cout << "Prosze podac zakres :"<<endl;
    cout << "a = ";
    cin >> a;
    cout << "b = ";
    cin >> b;

    if (a > b)
    {
        cout << "Lewa strona przedzialu wieksza od prawej.\nZamieniam."<< endl;
        swap(a,b);
    }
    cout << "Prosze podac liczbe wezlow :";
    cin >> wezly;
    double *x = new double[wezly];
    double *y = new double[wezly];
    cout << "Prosze wybrac funkcje :" << endl;
    cout << "1) Funkcja liniowa : 3x -7" << endl;
    cout << "2) |5x +8|" << endl;
    cout << "3) 4x^3 - 2x^2 +3" << endl;
    cout <<"4) sinx" <<endl;
    cin >> wybor_funckji;

    cout << "Wezly wyznacz z :" << endl;
    cout << "1) pliku." << endl;
    cout << "2) metody wezlow Czebyszewa." << endl;
    cin >> wybor_wczyt;

    switch(wybor_wczyt)
    {
    case 1:
        break;
    case 2:
        wezly_czebyszewa(x,wezly,a,b);
        for (int i =0; i < wezly; i++)
        {
            y[i] = wart_funkcji(x[i],wybor_funckji);
        }
        break;
    }

    return 0;
}


funkcje .hpp

#ifndef FUNKCJE_HPP_INCLUDED
#define FUNKCJE_HPP_INCLUDED


void wezly_czebyszewa(double *x, int wezly, int a, int b);
double funckja_liniowa (double x);
double funkcja_bezwzgledna (double x);
double wielomian_Horner(double x);
double trygonometryczna(double x);
double wart_funkcji (double x, int wybor_funkcji);

#endif // FUNKCJE_HPP_INCLUDED



funckje.cpp

#include "funkcje.hpp"
#include <math.h>
#include <iostream>

using namespace std;

void wezly_czebyszewa(double *x, int wezly, int a, int b)
{
    double gora,dol;
    gora = 2*wezly +1;
    for ( int i = 0; i<wezly; i++)
    {
        dol = 2*i +1;
        x[i] = cos(gora * 3.14 / dol);
    }

}
double funckja_liniowa (double x)
{
    return 3*x -7;
}
double funkcja_bezwzgledna (double x);
{
    double funckja;

    funkcja = 5*x + 8;

    return fabs(funckja);
}

double wielomian_Horner(double x)
{
    double wspolczynniki[4] = {3,0,-2,4};

    double wynik=wspolczynniki[0];
    for(int i=1; i<stopien; i++)
        wynik=wynik*x+wspolczynniki[i];
    return wynik;
}
double trygonometryczna(double x){
    return sin(x);
}

double wart_funkcji (double x, int wybor_funkcji){
        switch(wybor_funkcji){
    case 1:
        return funckja_liniowa(x);
        break;
    case 2:
        return funkcja_bezwzgledna(x);
        break;
    case 3:
        return wielomian_Horner(x);
        break;
    case 4:
        return trygonometryczna(x);
        break;
        }
}

1

Kompilujesz to jako projekt czy z linii poleceń? Jeśli to drugie, to musisz pierw skompilować plik z funkcjami osobno i potem dołączyć go do kompilacji main.cpp.

edit; albo to co @pasasap napisał.

1
double funkcja_bezwzgledna (double x); // błąd w tej funkcji, staraj się dawać działający kod ;'|

double wielomian_Horner(double x) // niezdefiniowana wartość stopien

g++ funckje.cpp main.cpp powinno wtedy skompilować to.

0
pasasap napisał(a):
double funkcja_bezwzgledna (double x); // błąd w tej funkcji, staraj się dawać działający kod ;'|

double wielomian_Horner(double x) // niezdefiniowana wartość stopien

g++ funckje.cpp main.cpp powinno wtedy skompilować to.

używam CodeBlocks'a.
Co do błędy to nawet nie wywołuje tej funkcji w main, więc na razie nie to jest problemem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1