Tengo lo siguiente en el archivo de encabezado.Referencia no definida a la función no miembro - C++
namespace silc{
class pattern_token_map
{
/* Contents */
};
pattern_token_map* load_from_file(const char*);
}
En el archivo CPP (esto tiene adecuado incluye)
pattern_token_map* load_from_file(const char* filename)
{
// Implementation goes here
}
En otro archivo CPP. Esto tiene todos los adecuados incluye.
void some_method()
{
const char* filename = "sample.xml";
pattern_token_map* map = load_from_file(filename); // Linker complains about this.
}
estoy recibiendo un error de vinculador diciendo que referencia indefinida a load_from_file
. No puedo ver qué está pasando mal aquí.
Cualquier ayuda sería apreciada.
Compilador: G ++ OS: Ubuntu 9.10
Editar
Este es el comando enlazador utilizado.
g++ -L/home/nkn/silc-project/third_party/UnitTest++ -o tests.out src/phonetic_kit/pattern_token_map.o tests/pattern_token_map_tests.o tests/main.o -lUnitTest++
de error es de pattern_token_map_tests.o
y la función está disponible en pattern_token_map.o
. Así que supongo que el orden de los enlaces no está causando el problema. (He eliminado algunos archivos del comando para simplificarlo)
¿Echas de menos los parens en 'some_method'? –
Imposible distinguir entre lo que ha publicado, agregue el comando compilador/vinculador que está utilizando. –
Gracias Neil. He agregado el comando linker que estoy usando. Es una versión simplificada de lo que tengo. –