c++ - OpenCv 未定义对 `cv::的引用

标签 c++ eclipse opencv mingw

我是 OpenCv 的新人。我正在使用 Eclipse C/C++。当我尝试运行此示例代码时,我遇到了这些错误。我应该怎么做才能解决这个问题?配置有问题吗?

#using namespace std;
#using namespace cv;

    int main( int argc, const char** argv )
    {
         Mat img = imread("MyPic.JPG", CV_LOAD_IMAGE_UNCHANGED); 
         if (img.empty()) //check whether the image is loaded or not
         {
              cout << "Error : Image cannot be loaded..!!" << endl;
              //system("pause"); //wait for a key press
              return -1;
         }
         namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow"
         imshow("MyWindow", img); /
         waitKey(0); //wait infinite time for a keypress
         destroyWindow("MyWindow"); //destroy the window with the name, "MyWindow"

         return 0;
    }


16:11:28 **** Incremental Build of configuration Debug for project OpenCv ****
Info: Internal Builder is used for build
g++ "-IC:\\opencv\\build\\include" -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\OpenCv.o" "..\\src\\OpenCv.cpp" 
g++ "-LC:\\opencv\\build\\x86\\vc12\\lib" -o OpenCv.exe "src\\OpenCv.o" -lopencv_calib3d249 -lopencv_contrib249 -lopencv_core249 -lopencv_features2d249 -lopencv_flann249 -lopencv_gpu249 -lopencv_highgui249 -lopencv_imgproc249 -lopencv_legacy249 -lopencv_ml249 -lopencv_nonfree249 -lopencv_objdetect249 -lopencv_ocl249 -lopencv_photo249 -lopencv_stitching249 -lopencv_superres249 -lopencv_ts249 -lopencv_video249 -lopencv_videostab249 
src\OpenCv.o: In function `main':
C:\Users\ayberk101\workspace\OpenCv\Debug/../src/OpenCv.cpp:10: undefined reference to `cv::imread(std::string const&, int)'
C:\Users\ayberk101\workspace\OpenCv\Debug/../src/OpenCv.cpp:19: undefined reference to `cv::namedWindow(std::string const&, int)'
C:\Users\ayberk101\workspace\OpenCv\Debug/../src/OpenCv.cpp:20: undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
C:\Users\ayberk101\workspace\OpenCv\Debug/../src/OpenCv.cpp:20: undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
C:\Users\ayberk101\workspace\OpenCv\Debug/../src/OpenCv.cpp:22: undefined reference to `cv::waitKey(int)'
C:\Users\ayberk101\workspace\OpenCv\Debug/../src/OpenCv.cpp:24: undefined reference to `cv::destroyWindow(std::string const&)'
src\OpenCv.o: In function `ZN2cv3MatD1Ev':
C:/opencv/build/include/opencv2/core/mat.hpp:278: undefined reference to `cv::fastFree(void*)'
src\OpenCv.o: In function `ZN2cv3Mat7releaseEv':
C:/opencv/build/include/opencv2/core/mat.hpp:367: undefined reference to `cv::Mat::deallocate()'
collect2.exe: error: ld returned 1 exit status

enter image description here

最佳答案

问题1:您必须包含 opencv/c++ 头文件才能使其工作:

#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#using namespace cv;

#include <iostream>
#using namespace std;

int main() {
...

然后,问题2:你不能将vc12库与mingw一起使用。 (这是一个不同的编译器)

没有更多用于 opencv 的预构建 mingw 库,因此,在执行其他操作之前,您必须使用 cmake 在本地构建 opencv 库。


再说一次,你真的需要使用 mingw/eclipse 吗? (与 express 仍然免费)

关于c++ - OpenCv 未定义对 `cv::的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26237482/

相关文章:

c++ - TODO 是否适用于 NetBeans for C++?

java - 非英文字体编码

java - Eclipse > Java > 打开链接资源源(.java 而不是 .class )?

php - 在 Eclipse 中下载 SVN 的 SQL 架构

python - 破解一个闭源程序来帮助我使用 python/screenshot/OCR 对现实生活中的对象进行排序

c++ - 仅从字符串中提取整数

c++ - 关于多线程程序的查询

eclipse - 是否有用于 Eclipse 的颜色选择器插件?

c++ - 如何使用 Opencv 2.3 更改灰度图像的像素值?

c++ - cv::Mat 如何从/转换为 glm::mat4