ヘッダーファイルに次のものがあります。
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++ OS: 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
。したがって、リンクの順序は問題ではないと思います。(コマンドを簡略化するために、コマンドからいくつかのファイルを削除しました)