I have typed the following program from Learning OpenCV book:

#include "highgui.h"
    
    int main(int argc, char *argv[])
    {
      IplImage *img = cvLoadImage(argv[1]);
      cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
      cvShowImage("Example1", img);
      cvWaitKey(0);
      cvReleaseImage(&img);
      cvDestroyWindow("Example1");
    }

When I try to build it using `Eclipse CDT`, I get the following (Any ideas?):

**** Build of configuration Debug for project OpenCV ****
    
    **** Internal Builder is used for build               ****
    g++ -IC:\OpenCV2.0\include\opencv -O0 -g3 -Wall -c -fmessage-length=0 -osrc\opencv.o ..\src\opencv.cpp
    In file included from C:/OpenCV2.0/include/opencv/cxcore.hpp:2243,
                     from C:/OpenCV2.0/include/opencv/cxcore.h:2123,
                     from C:/OpenCV2.0/include/opencv/highgui.h:47,
                     from ..\src\opencv.cpp:1:
    C:/OpenCV2.0/include/opencv/cxoperations.hpp: In member function `void cv::Ptr<_Tp>::addref()':
    C:/OpenCV2.0/include/opencv/cxoperations.hpp:1442: error: there are no arguments to `__exchange_and_add' that depend on a template parameter, so a declaration of `__exchange_and_add' must be available
    C:/OpenCV2.0/include/opencv/cxoperations.hpp:1442: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
    C:/OpenCV2.0/include/opencv/cxoperations.hpp: In member function `void cv::Ptr<_Tp>::release()':
    C:/OpenCV2.0/include/opencv/cxoperations.hpp:1446: error: there are no arguments to `__exchange_and_add' that depend on a template parameter, so a declaration of `__exchange_and_add' must be available
    C:/OpenCV2.0/include/opencv/cxoperations.hpp: In member function `cv::Ptr<_Tp>& cv::Ptr<_Tp>::operator=(const cv::Ptr<_Tp>&)':
    C:/OpenCV2.0/include/opencv/cxoperations.hpp:1473: error: there are no arguments to `__exchange_and_add' that depend on a template parameter, so a declaration of `__exchange_and_add' must be available
    In file included from C:/OpenCV2.0/include/opencv/cxcore.hpp:2244,
                     from C:/OpenCV2.0/include/opencv/cxcore.h:2123,
                     from C:/OpenCV2.0/include/opencv/highgui.h:47,
                     from ..\src\opencv.cpp:1:
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In copy constructor `cv::Mat::Mat(const cv::Mat&)':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:102: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:102: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In constructor `cv::Mat::Mat(const cv::Mat&, const cv::Range&, const cv::Range&)':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:174: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:174: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In constructor `cv::Mat::Mat(const cv::Mat&, const cv::Rect&)':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:189: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:189: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In member function `cv::Mat& cv::Mat::operator=(const cv::Mat&)':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:239: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:239: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In member function `void cv::Mat::addref()':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:342: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:342: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In member function `void cv::Mat::release()':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:346: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:346: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In copy constructor `cv::MatND::MatND(const cv::MatND&)':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:3648: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:3648: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In member function `cv::MatND& cv::MatND::operator=(const cv::MatND&)':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:3677: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:3677: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In member function `void cv::MatND::addref()':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:3717: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:3717: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In member function `void cv::MatND::release()':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:3722: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:3722: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In member function `cv::SparseMat& cv::SparseMat::operator=(const cv::SparseMat&)':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:4081: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:4081: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In member function `void cv::SparseMat::addref()':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:4112: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:4112: warning: unused variable '__exchange_and_add'
    C:/OpenCV2.0/include/opencv/cxmat.hpp: In member function `void cv::SparseMat::release()':
    C:/OpenCV2.0/include/opencv/cxmat.hpp:4116: error: `__exchange_and_add' was not declared in this scope
    C:/OpenCV2.0/include/opencv/cxmat.hpp:4116: warning: unused variable '__exchange_and_add'
    Build error occurred, build is stopped
    Time consumed: 28061  ms.

Thanks.

Recommended Answers

All 4 Replies

It appears that this is just a little compiler flag mismatch. You should follow the instructions here, and it should work.

You need to include header file...

#include "cv.h"

Thanks for your replies. Actually, neither solutions worked.

Thinking back had same problem with OpenCV 2.0. I could get it to work correctly with code::blocks 8.02 & MinGW 3.4 installed, also got it working with netbeans IDE had to do as Mike 2000 17 suggested.

There's a tutorial on netbeans c++ forums I wrote to install OpenCV 2.0 with netbeans IDE
http://forums.netbeans.org/topic24358.html
Hope this helps

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.