按照本指南,我最近从OpenCV 2.4.11升级到了OpenCV 3.1。 这sudo使安装似乎已经成功,当我运行pkg-config –modversion opencv,我得到相应的版本(3.1.0)。
但由于某种原因,我现在正在运行链接器错误,甚至简单的程序也无法编译,例如:
#include <opencv2/opencv.hpp> using namespace cv; int main(int argc,char* argv[]) { Mat im1 = imread(argv[1]); return 0; }
返回错误:
main.cpp:-1:错误:未定义的引用cv :: imread(cv :: String const&,int)
RC2247:无法打开Rc文件:资源pipe理器无法加载资源; 加载失败
未定义的引用符号'pthread_key_delete @@ GLIBC_2.2.5
旧的Fortran程序:ld返回1退出状态
使用VS 2008的Windows上的Apache 2.4链接器错误
main.cpp:-1:错误:未定义引用`cv :: String :: allocate(unsigned long)'
main.cpp:-1:错误:对`cv :: String :: deallocate()'的未定义引用
这可能是由于与以前的安装冲突吗? 在我开始之前,开始手动删除/ usr / local / [lib |中的文件 包括| 我以为我会先问在这里。 有什么build议么?
隐藏的可见性在我的共享库中得到了应用,但是对于linux上的静态库有效
Linux FreeBSD共享对象问题
您的链接器路径可能是错误的。 确保所需的opencv是链接器路径中的第一个,或者链接错误的链接器。 删除opencv2可能会解决这个问题…考虑将来使用包管理器,所以你没有像这样的混乱与所有的时间竞争。
我继续采取核选项(sudo RM,其次是sudo make install),现在一切都编译完成。 我并不为此感到自豪,也不一定主张这一点,但如果其他人达到这个绝望的境地,你可能会发现这个杀人日志有帮助:
sudo rm -r /usr/share/opencv sudo rm -r /usr/share/OpenCV/ sudo rm -r /usr/local/include/opencv sudo rm -r /usr/local/bin/opencv* sudo rm -r /usr/local/share/OpenCV/ sudo rm -r /usr/local/lib/libopencv_* sudo rm /usr/local/lib/pkgconfig/opencv.pc sudo rm /usr/local/lib/python2.7/dist-packages/cv2.so
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。