У меня есть следующее в заголовочном файле.
namespace silc{
class pattern_token_map
{
/* Contents */
};
pattern_token_map* load_from_file(const char*);
}
В файле CPP (это правильно включает в себя)
pattern_token_map* load_from_file(const char* filename)
{
// Implementation goes here
}
В другом файле CPP. Это включает в себя все необходимые.
void some_method()
{
const char* filename = "sample.xml";
pattern_token_map* map = load_from_file( filename ); // Linker complains about this.
}
Я получаю ошибку компоновщика, говорящую, что неопределенная ссылка на load_from_file
. Я не могу видеть, что здесь происходит не так.
Любая помощь будет оценена.
Компилятор: G ++
ОС: Ubuntu 9.10
Редактировать
Здесь используется команда компоновщика.
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++
Ошибка от pattern_token_map_tests.o
, а функция доступна в pattern_token_map.o
. Так что я думаю, что порядок ссылок не создает проблемы. (Я удалил некоторые файлы из команды, чтобы упростить это)