我在头文件中有以下内容。对非成员函数的未定义引用 - C++
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
可用。所以我猜想链接的顺序不会造成问题。 (我已经从命令中删除了一些文件来简化它)
你失踪'some_method'的括号? – 2010-01-17 17:31:58
不可能从您发布的内容中知道 - 请添加您正在使用的编译器/链接器命令。 – 2010-01-17 17:34:41
谢谢尼尔。我已经添加了我正在使用的链接器命令。这是我所拥有的简化版本。 – 2010-01-17 17:36:50