我在头文件中有以下内容。
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
中。因此我猜想链接顺序并没有导致问题。(为了简化命令,我已经删除了一些文件)
load_from_file
的实现是在namespace silc
块内定义的吗? - Peter Kovacs