2014-07-09 69 views
-3

我使用自制軟件安裝了opencv。我正嘗試通過鏈接到opencv來構建一個項目。但是,我得到了以下錯誤。在OS小牛鏈接OpenCV的錯誤

爲架構x86_64的未定義符號: 「CV :: FileStorage :: FileStorage(STD :: __ 1 :: basic_string的,性病:: __ 1 ::分配器>常量&,整型,性病:: __ 1 :: basic_string的,標準:: __ 1 :: allocator> const &)「,引用自: imall.cpp.o中的kmeans_save(_VlKMeans const *) imall.cpp.o中的kmeans_read() learn_codebook(std :: __ 1 :: basic_string,std :: __ 1 :: allocator>)in imall.cpp.o encoding(std :: __ 1 :: basic_string,std :: __ 1 :: allocator>)in imall.cpp.o 「cv :: write(cv :: FileStorage &,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const &,cv :: Mat const &)」,從引用: CV :: FileStorage & CV ::運算< <>(CV :: FileStorage &,CV :: Mat_常量&)在imall.cpp.o CV :: FileStorage & CV ::運算< <>(cv :: FileStorage &,cv :: Mat_ const &)in imall.cpp.o 「cv :: write(cv :: FileStorage &,std :: __ 1 :: basic_string,std :: __ 1 :: (cv :: FileStorage &,float const),參考文獻:)in imall.cpp.o 「cv :: write(cv :: FileStorage &,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const &,int)」,引用自: cv: :FileStorage & CV ::運算< <(CV :: FileStorage &,INT常量&)在imall.cpp.o 「CV :: imread(STD :: __ 1 :: basic_string的,性病:: __ 1 ::分配器>常量編碼(std :: __ 1 :: basic_string,std :: __ 1): 編碼(std :: __ 1 :: basic_string,std :: __ 1) :: allocator>)in imall.cpp.o 「cv :: Exception :: Exception(int,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const &,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const &,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const &,int)「,引用來自: cv: :FileStorage & CV ::運算< <(CV :: FileStorage &,INT常量&)在imall.cpp.o CV :: FileStorage & CV ::運算< <(CV :: FileStorage &,浮子常量&)在imall.cpp.o CV :: FileStorage & CV ::運算< <>(CV :: FileStorage &,CV :: Mat_常量&)在imall.cpp.o CV :: FileStorage & CV ::運算< <>(CV :: FileStorage &,CV :: Mat_常量&)在imall.cpp.o 「CV ::運算< <(CV :: FileStorage &,標準: :__ 1 :: basic_string,std :: __ 1 :: allocator> const &)「,引用自: cv :: operator < <(cv :: FileStorage &,char const *)in imall.cpp。o ld:找不到架構x86_64的符號 clang:錯誤:連接器命令失敗,退出代碼1(使用-v查看調用)

我不知道如何解決它。謝謝。

+0

可能重複[什麼是未定義的引用/無法解析的外部符號錯誤,以及如何解決它?](http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-外部符號錯誤和怎麼辦我修復) – Aurelius

+0

我懷疑這是與小牛有關的問題,因爲它可以在Windows中構建。這就是我在這裏問的原因。 – user2547081

+0

通過使用macport而不是自制軟件安裝opencv來解決這個問題。它應該與自制軟件用於安裝opencv的C++庫有關,因爲在Mavericks中使用了libC++(如果我記得正確)。希望這會對其他人有所幫助。 – user2547081

回答

0

今天我發現了非常類似的錯誤,我的CUDA OpenCV從Homebrew構建。顯然,如果你啓用了CUDA,而不是現在默認的來自clang的libC++,Homebrew公式會針對libstdC++構建。因此,您必須使用「-stdlib = libstdC++」來構建程序以避免所有這些錯誤。