Undefined reference C++

J'essaie de compiler mon premier programme légitime que je suis la conversion de Java (j'ai couru un test hello world type de programme pour vérifier mon compilateur et ça marche).
Il y a trois fichiers:

main.cpp

#include <iostream>
#include "skewNormal.h"

using namespace std;

double getSkewNormal(double, double);

int main(int argc, char **argv) {
    cout << getSkewNormal(10.0, 0.5) << endl;
}

skewNormal.cpp

#define _USE_MATH_DEFINES
#include <iostream>
#include <math.h>

using namespace std;

#include <skewNormal.h>

double SkewNormalEvalutatable::evaluate(double x)
{
    return 1 / sqrt(2 * M_PI) * pow(M_E, -x * x / 2);
}

SkewNormalEvalutatable::SkewNormalEvalutatable()
{
}

double sum (double start, double stop,
                               double stepSize,
                               Evaluatable evalObj)
{
  double sum = 0.0, current = start;
  while (current <= stop) {
    sum += evalObj.evaluate(current);
    current += stepSize;
  }
  return(sum);
}

double integrate (double start, double stop,
                                     int numSteps,
                                     Evaluatable evalObj)
{
  double stepSize = (stop - start) / (double)numSteps;
  start = start + stepSize / 2.0;
  return (stepSize * sum(start, stop, stepSize, evalObj));
}

double getSkewNormal(double skewValue, double x)
{
  SkewNormalEvalutatable e;
  return 2 / sqrt(2 * M_PI) * pow(M_E, -x * x / 2) * integrate(-1000, skewValue * x, 10000, e);
}

skewNormal.h

#ifndef SKEWNORMAL_H_INCLUDED
#define SKEWNORMAL_H_INCLUDED

class Evaluatable {
public:
  virtual double evaluate(double x);
};

class SkewNormalEvalutatable : Evaluatable{
public:
  SkewNormalEvalutatable();
  double evaluate(double x);
};

double getSkewNormal(double skewValue, double x);

double integrate (double start, double stop, int numSteps, Evaluatable evalObj);

double sum (double start, double stop, double stepSize, Evaluatable evalObj);

#endif //SKEWNORMAL_H_INCLUDED

La compilation a donné le message d'erreur suivant:

main.cpp:9: undefined reference to `getSkewNormal(double, double)'

J'utilise Code::Blocks sous Ubuntu 10.10.

Quelle est la commande du compilateur que vous utilisez?
SB: Il est de l'aide et de l'IDE et il devrait déjà prendre soin de lier le tout.
Hum, difficile à dire, mais l'erreur ressemble à un éditeur de liens, pas d'erreur du compilateur. Essayez ceci: g++ -o prog main.cpp skewNormal.cpp, juste pour être sûr.
Je utiliser un IDE, mais j'ai encore à dire ce qui est dans mon projet...
Pour votre info, Seuls les en-têtes sont enfermés dans <>. Dans skewNormal.cpp, y compris l'en-tête doit être #include "skewNormal.h". ( c'est à dire, défini par l'utilisateur en-tête inclus les fichiers doivent être placés dans " " ). BTW, ce que vous avez n'est pas une erreur de compilation mais c'est un erreur liens.

OriginalL'auteur Ryan Amos | 2011-06-08