LNK2019 y LNK1120 con funciones en un archivo externo
-
08-10-2019 - |
Pregunta
he quitado algunas funciones de un archivo fuente con otra ya que quiero utilizarlos también en otros archivos. La estructura actual es la siguiente
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);
}
El problema es que cuando intento compilar esto, el enlazador se queja y dice que el someFunction
símbolo no puede resolverse.
Solución
someFunction
se declara inline
, por lo que debe se define en el archivo de cabecera:
utils/extFuncs.h
#ifndef _extFuncs_h
#define _extFuncs_h
inline int someFunction (float v)
{
return 42;
}
#endif
Otros consejos
¿Usted ha intentado añadir la extFunction.h y extFunction.cpp al espacio de trabajo del proyecto?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow