解决undefined reference to `cv::imread(std::string const&, int)'
作者:互联网
目录
问题
报错信息: undefined reference to cv::imread(std::string const&, int)
出现了如上错误我还以为是opencv的链接出现问题,便一直试图解决导入opencv,尝试了多种方式链接库,但最终一直会出现该报错
最终发现是代码的问题
解决方案
是代码中#define _GLIBCXX_USE_CXX11_ABI 0导致了该报错,去掉就可以正常运行了
进一步测试
windows
windows中使用Clion,从CMakeList中去掉set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")的话,就是出现如下报错
undefined reference to cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)
如果加上了,就和一开始的报错一致
暂时无法解决
在Visual Studio的CMakeLists中无论是否加入set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")都可以正常运行
linux
在linux下不要设置 _GLIBCXX_USE_CXX11_ABI,正常运行
原因
原因暂时不详,日后解决
标签:std,GLIBCXX,USE,CXX11,const,undefined,ABI,FLAGS,CMAKE 来源: https://www.cnblogs.com/zhangwc020/p/15707617.html