Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对cv::imread链接错误的未定义引用_C++_Opencv_Linker Errors_Caffe_Undefined Reference - Fatal编程技术网

C++ 对cv::imread链接错误的未定义引用

C++ 对cv::imread链接错误的未定义引用,c++,opencv,linker-errors,caffe,undefined-reference,C++,Opencv,Linker Errors,Caffe,Undefined Reference,我正在尝试安装caffe的修改版本,作为此库安装的一部分: 我在ubuntu 14.04上,使用的是caffe网站上列出的cmake安装 我已经安装了matlab&在路径中有mex文件 在cmake..之后,我执行了一个makeall并得到了这个错误: Linking CXX executable caffe ../lib/libcaffe.a(io.cpp.o): In function `caffe::ReadImageToDatum(std::string const&, int,

我正在尝试安装caffe的修改版本,作为此库安装的一部分: 我在ubuntu 14.04上,使用的是caffe网站上列出的cmake安装

我已经安装了matlab&在路径中有mex文件

cmake..
之后,我执行了一个
makeall
并得到了这个错误:

Linking CXX executable caffe
../lib/libcaffe.a(io.cpp.o): In function `caffe::ReadImageToDatum(std::string const&, int, int, int, bool, caffe::Datum*)':
io.cpp:(.text+0x67d): undefined reference to `cv::imread(cv::String const&, int)'

../lib/libcaffe.a(window_data_layer.cpp.o): In function `caffe::WindowDataLayer<float>::InternalThreadEntry()':
window_data_layer.cpp:(.text._ZN5caffe15WindowDataLayerIfE19InternalThreadEntryEv[_ZN5caffe15WindowDataLayerIfE19InternalThreadEntryEv]+0x44b): undefined reference to `cv::imread(cv::String const&, int)'

../lib/libcaffe.a(window_data_layer.cpp.o): In function `caffe::WindowDataLayer<double>::InternalThreadEntry()':
window_data_layer.cpp:(.text._ZN5caffe15WindowDataLayerIdE19InternalThreadEntryEv[_ZN5caffe15WindowDataLayerIdE19InternalThreadEntryEv]+0x446): undefined reference to `cv::imread(cv::String const&, int)'

collect2: error: ld returned 1 exit status
make[2]: *** [tools/caffe] Error 1
make[1]: *** [tools/CMakeFiles/caffe.bin.dir/all] Error 2
make: *** [all] Error 2
链接CXX可执行文件caffe
../lib/libcaffe.a(io.cpp.o):在函数'caffe::ReadImageToDatum(std::string const&,int,int,int,bool,caffe::Datum*)'中:
io.cpp:(.text+0x67d):对“cv::imread(cv::String const&,int)”的未定义引用
../lib/libcaffe.a(window\u data\u layer.cpp.o):在函数'caffe::WindowDataLayer::InternalThreadEntry()'中:
window_data_layer.cpp:(.text._ZN5caffe15WindowDataLayerIfE19InternalThreadEntryEv[_ZN5caffe15WindowDataLayerIfE19InternalThreadEntryEv]+0x44b):对“cv::imread(cv::String const&,int)”的未定义引用
../lib/libcaffe.a(window\u data\u layer.cpp.o):在函数'caffe::WindowDataLayer::InternalThreadEntry()'中:
window_data_layer.cpp:(.text._ZN5caffe15WindowDataLayerIdE19InternalThreadEntryEv[_ZN5caffe15WindowDataLayerIdE19InternalThreadEntryEv]+0x446):未定义对“cv::imread(cv::String const&,int)”的引用
collect2:错误:ld返回了1个退出状态
make[2]:***[tools/caffe]错误1
make[1]:***[tools/CMakeFiles/caffe.bin.dir/all]错误2
make:**[全部]错误2
接下来,我查看了
pkg config--cvflags opencv
的输出,它是
-I/usr/local/include/opencv-I/usr/local/include

这与安装my OpenCV安装的标题的位置相同。(我不确定这两者之间的因果关系。)OpenCV 3.1和2.4都指向这些文件-我尝试安装它们并在它们之间切换,我只是将
OpenCV
opencv2
头文件夹移动到一个tmp文件夹,而我使用另一个OpenCV。我认为这可能是错误的根源,因为我不知道如何确定我的程序正在使用哪个版本的OpenCV

更具体地说,我所做的是:

我在Makefile中添加了
opencv\u imgcodecs

通过apt get安装opencv

通过apt get remove卸载opencv

安装了opencv的一个版本,我不记得该版本了

从src安装3.1和2.4,并如上所述关闭标题文件夹

删除了opencv src和header文件夹的一个版本,我不知道如何查看它的版本


从我开始检查时起,python import cv2从3.1版发展到现在的3.2-dev.

什么是
cmake..
,CMakeCache.txt中的变量
OpenCV_LIBS
说了什么?我只能做2个链接,但我遵循了这个方法,在其中创建了一个构建文件夹,然后在其中创建了“cmake..”。在build文件夹内的cmakcache.txt中,没有OpenCV_LIBS变量。在包含OpenCV的CMake配置文件的目录中有这些文件。OpenCV_DIR:PATH=/usr/local/share/OpenCV//Details about FIND\u PACKAGE\u MESSAGE\u Details\u OpenCV:INTERNAL=[/usr/local][cfound components:core highgui imgproc][v3.2.0()]您可以将OpenCV文件夹重命名为其他文件夹,以测试正在使用的文件夹。看看哪一个重命名它会改变事情。什么是
cmake..
,CMakeCache.txt中的变量
OpenCV_LIBS
说了什么?我只能做两个链接,但我遵循了这一点,在这里我创建了一个构建文件夹,然后在其中创建了“cmake..”。在build文件夹内的cmakcache.txt中,没有OpenCV_LIBS变量。在包含OpenCV的CMake配置文件的目录中有这些文件。OpenCV_DIR:PATH=/usr/local/share/OpenCV//Details about FIND\u PACKAGE\u MESSAGE\u Details\u OpenCV:INTERNAL=[/usr/local][cfound components:core highgui imgproc][v3.2.0()]您可以将OpenCV文件夹重命名为其他文件夹,以测试正在使用的文件夹。看看哪一个更名会改变一切。