Question

J'ai pris quelques fonctions à partir d'un fichier source dans une autre que je veux les utiliser dans d'autres fichiers. La structure actuelle est comme suit

utils/extFuncs.h

#ifndef _extFuncs_h
#define _extFuncs_h
inline int someFunction (float v);
#endif

utils/extFuncs.cpp

#include "utils/extFuncs.h"
inline int someFunction (float v) {
    return 42;
}

foo/bar.h

#ifndef _bar_h
#define _bar_h
#include "utils/extFuncs.h"
class Bar {
public:
    Bar (float x);
};
#endif

foo/bar.cpp

#include "foo/bar.h"
Bar::Bar (float x) {
    int y = someFunction(x);
}

Le problème est que lorsque je tente de compiler cela, l'éditeur de liens se plaint et dit que le symbole someFunction ne pouvait pas être résolu.

Était-ce utile?

La solution

someFunction est déclarée inline, il doit défini dans le fichier d'en-tête:

utils/extFuncs.h

#ifndef _extFuncs_h
#define _extFuncs_h
inline int someFunction (float v)
{
    return 42;
}
#endif

Autres conseils

Avez-vous essayé d'ajouter le extFunction.h & extFunction.cpp dans votre espace de travail de projet?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top