LNK2019 et LNK1120 avec des fonctions dans un fichier externe
-
08-10-2019 - |
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.
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