我使用自制软件安装opencv。我试图通过链接到opencv来构建一个项目。但是,我收到以下错误。
架构x86_64的未定义符号: " cv :: FileStorage :: FileStorage(std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&,int,std :: __ 1 :: basic_string,std :: __ 1 :: allocator&gt ; const&)",引自: imall.cpp.o中的kmeans_save(_VlKMeans const *) imall.cpp.o中的kmeans_read() imall.cpp.o中的learn_codebook(std :: __ 1 :: basic_string,std :: __ 1 :: allocator>) imall.cpp.o中的编码(std :: __ 1 :: basic_string,std :: __ 1 :: allocator>) " cv :: write(cv :: FileStorage&,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&,cv :: Mat const&)",引自: CV :: FileStorage&安培; CV ::运营商LT;< imall.cpp.o中的>(cv :: FileStorage&,cv :: Mat_ const&) CV :: FileStorage&安培; CV ::运营商LT;< imall.cpp.o中的>(cv :: FileStorage&,cv :: Mat_ const&) " cv :: write(cv :: FileStorage&,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&,float)",引自: CV :: FileStorage&安培; imall.cpp.o中的cv :: operator<<(cv :: FileStorage&,float const&) " cv :: write(cv :: FileStorage&,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&,int)",引自: CV :: FileStorage&安培; imall.cpp.o中的cv :: operator<<(cv :: FileStorage&,int const&) " cv :: imread(std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&,int)",引自: imall.cpp.o中的learn_codebook(std :: __ 1 :: basic_string,std :: __ 1 :: allocator>) imall.cpp.o中的编码(std :: __ 1 :: basic_string,std :: __ 1 :: allocator>) " cv :: Exception :: Exception(int,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&,std :: __ 1 :: basic_string,std :: __ 1 :: allocator&gt ; const&,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&,int)",引自: CV :: FileStorage&安培; imall.cpp.o中的cv :: operator<<(cv :: FileStorage&,int const&) CV :: FileStorage&安培; imall.cpp.o中的cv :: operator<<(cv :: FileStorage&,float const&) CV :: FileStorage&安培; CV ::运营商LT;< imall.cpp.o中的>(cv :: FileStorage&,cv :: Mat_ const&) CV :: FileStorage&安培; CV ::运营商LT;< imall.cpp.o中的>(cv :: FileStorage&,cv :: Mat_ const&) " cv :: operator<<(cv :: FileStorage&,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&)",引自: imall.cpp.o中的cv :: operator<<(cv :: FileStorage&,char const *) ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我不确定如何修复它。感谢。
答案 0 :(得分:0)
今天我从Homebrew构建的支持CUDA的OpenCV出现了非常类似的错误。显然,如果启用CUDA,而不是现在默认的clac ++ libc,则Homebrew公式将根据libstdc ++构建。因此,您必须使用“-stdlib = libstdc ++”构建程序以避免所有这些错误。