我得到了以下錯誤:未定義的引用無效 「功能」 C++
features.cpp:(.text+0x4f6): undefined reference to `void Convolve<float>(CImageOf<float>, CImageOf<float>&, CImageOf<float>)'
所以,在我features.cpp文件,添加以下的頭文件,內容是:
template <class T>
void Convolve(CImageOf<T> src, CImageOf<T>& dst,
CFloatImage kernel);
我在ubuntu 64bit上用GCC編譯這個。我意識到上面的錯誤是因爲我的頭文件中的內容與引用不匹配,但這是因爲模板,所以我不應該有這個問題嗎?還有什麼呢?
我雙重檢查我的電話進行卷積,而實際上這是我使用的類型:
Convolve(CFloatImage, CFloatImage, CFloatImage);
我不能真正找到上述
CFloatImage內核!= CImageOf –
Borgleader
看起來像你放在頭模板函數__declaration__只,而不是__definition__。哪裏定義了Convolve? 'CFloatImage'只是'typedef'用於'CImageOf',對不對? –
Rost