我想在我的C++項目中使用Rob Hess's SIFT library。我已經查看了其他SIFT實現的代碼,但是這個代碼看起來像最初的Lowe的論文中最相似的,並且也使用了我熟悉的OpenCV,所以我選擇了這個。用C++連接Rob Hess的SIFT庫(用C語言,使用OpenCV)
不幸的是,自從我嘗試在C++中使用它之後,我遇到了麻煩。該庫最初是用OpenCV用C編寫的。
我已經嘗試編譯我的代碼,無論是否包含C庫include -s都與extern
,但都不起作用。我想我已經診斷出這兩種情況下的問題,但我不知道如何解決這些問題,我非常感謝任何幫助。
問題(或者至少,我認爲問題是):
withouth的
extern
:不,因爲C的工作++名稱重整(我檢查了,當然,所有的功能名稱被裝飾)與
extern
:不起作用,因爲OpenCV可以檢測它爲C或C++編譯的天氣。有任何的SIFT庫函數沒有聯繫的問題,但現在OpenCV中包括C++頭,並且因爲在主程序它最終包含在extern
塊,我得到(字面hundereds)像這樣的錯誤:/usr/local/include/opencv2/core/mat.hpp:2361: error: template with C linkage
我一直在努力使這項工作的最後幾天,所以如果有人試圖用C++相同SIFT庫工作或者已經經歷過類似的問題,不同的圖書館,幫助將是最讚賞。
看起來我不能接受我自己的答案2天以上,但這解決了問題,我會盡快接受我的答案。希望這可以幫助別人:) – penelope 2011-12-27 18:35:08