我在頭文件中有以下內容。對非成員函數的未定義引用 - 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