2014-07-09 45 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++”来构建程序以避免所有这些错误。