title: OpenCV - Why this build error?
body: <p>I have typed the following program from <code>Learning OpenCV</code> book:</p>
  
  <pre><code>#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(&amp;img);
    cvDestroyWindow("Example1");
  }
  </code></pre>
  
  <p>When I try to build it using <code>Eclipse CDT</code>, I get the following (Any ideas?):</p>
  
  <pre><code>**** 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&lt;_Tp&gt;::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&lt;_Tp&gt;::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&lt;_Tp&gt;&amp; cv::Ptr&lt;_Tp&gt;::operator=(const cv::Ptr&lt;_Tp&gt;&amp;)':
  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&amp;)':
  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&amp;, const cv::Range&amp;, const cv::Range&amp;)':
  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&amp;, const cv::Rect&amp;)':
  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&amp; cv::Mat::operator=(const cv::Mat&amp;)':
  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&amp;)':
  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&amp; cv::MatND::operator=(const cv::MatND&amp;)':
  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&amp; cv::SparseMat::operator=(const cv::SparseMat&amp;)':
  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.  
  </code></pre>
  
  <p>Thanks.</p>