title: unresolved external symbol error when importing libraries for OpenCV2.3 in Visual Studios 2010 Express C++
body: <p>first time posting a question here to stackoverflow. Sorry if I butcher the formatting!</p>
  
  <p>I am attempting to follow a basic tutorial on openCV, namely this one:
  <a href="http://aishack.in/tutorials/tracking-colored-objects-in-opencv/" rel="nofollow noreferrer">http://aishack.in/tutorials/tracking-colored-objects-in-opencv/</a></p>
  
  <p>I have looked at various tutorial online on how to install openCV, including:</p>
  
  <p><a href="https://stackoverflow.com/questions/7011238/opencv-2-3-c-visual-studio-2010">Setup OpenCV-2.3 for Visual Studio 2010</a>
  and 
   opencv.willowgarage.com/wiki/VisualC%2B%2B</p>
  
  <p>without much luck.</p>
  
  <p>The current version I have running right now is OpenCV 2.3.0.
  I am currently running on Windows 7 with Microsoft Visual C++ Express 2010. </p>
  
  <p>Whenever I  try to build and run my code, I get the following errors:</p>
  
  <pre><code>1&gt;------ Build started: Project: Camera, Configuration: Debug Win32 ------
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvReleaseImage referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage@@YAPAU_IplImage@@PAU1@@Z)
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvInRangeS referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage@@YAPAU_IplImage@@PAU1@@Z)
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvCvtColor referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage@@YAPAU_IplImage@@PAU1@@Z)
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvCreateImage referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage@@YAPAU_IplImage@@PAU1@@Z)
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvGetSize referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage@@YAPAU_IplImage@@PAU1@@Z)
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvReleaseCapture referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvWaitKey referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvShowImage referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvAdd referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvLine referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvGetCentralMoment referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvGetSpatialMoment referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvMoments referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvQueryFrame referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvNamedWindow referenced in function _main
  1&gt;camera.obj : error LNK2019: unresolved external symbol _cvCreateCameraCapture referenced in function _main
  1&gt;C:\Users\Kevin\Documents\Visual Studio 2010\Projects\Camera\Debug\Camera.exe : fatal error LNK1120: 16 unresolved externals
  ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
  </code></pre>
  
  <p>My code is as follows:</p>
  
  <pre><code>#include "cv.h"
  #include "highgui.h"
  
  IplImage* GetThresholdedImage(IplImage* img)
  {
  IplImage* imgHSV = cvCreateImage(cvGetSize(img), 8, 3);
  cvCvtColor(img, imgHSV, CV_BGR2HSV);
  IplImage* imgThreshed = cvCreateImage(cvGetSize(img), 8, 1);
  cvInRangeS(imgHSV, cvScalar(20, 100, 100), cvScalar(30, 255, 255), imgThreshed);
  cvReleaseImage(&amp;imgHSV);
  return imgThreshed;
  }
  
  int main()
  {
  CvCapture* capture = 0;
  capture = cvCaptureFromCAM(1);
    if(!capture)
  {
      printf("Could not initialize capturing...\n");
      getchar();
      return -1;
  }
  
  cvNamedWindow("video");
  cvNamedWindow("thresh");
  IplImage* imgScribble = NULL;
  
  while(1)
  {
      IplImage* frame = 0;
      frame = cvQueryFrame(capture);
  
      if(!frame)
          break;
      //cvErode(frame, frame, 0, 2); // ADD this line
      //initalize the scribble frame if has not already been done yet
      if(imgScribble == NULL)
      {
          imgScribble = cvCreateImage(cvGetSize(frame), 8, 3);
      }
      IplImage* imgYellowThresh = GetThresholdedImage(frame);
  
      CvMoments *moments = (CvMoments*)malloc(sizeof(CvMoments));
      cvMoments(imgYellowThresh, moments, 1);
  
      // The actual moment values
      double moment10 = cvGetSpatialMoment(moments, 1, 0);
      double moment01 = cvGetSpatialMoment(moments, 0, 1);
      double area = cvGetCentralMoment(moments, 0, 0);
  
      // Holding the last and current ball positions
      static int posX = 0;
      static int posY = 0;
  
      int lastX = posX;
      int lastY = posY;
  
      posX = moment10/area;
      posY = moment01/area;
  
      printf("position (%d,%d)\n", posX, posY);
  
      // We want to draw a line only if its a valid position
      if(lastX&gt;0 &amp;&amp; lastY&gt;0 &amp;&amp; posX&gt;0 &amp;&amp; posY&gt;0)
      {
          // Draw a yellow line from the previous point to the current point
          cvLine(imgScribble, cvPoint(posX, posY), cvPoint(lastX, lastY), cvScalar(0,255,255), 5);
      }
  
  
      cvAdd(frame, imgScribble, frame);
      cvShowImage("thresh", imgYellowThresh);
      cvShowImage("video", frame);
  
      int c = cvWaitKey(5);
          if((char)c==27 )
          break;
  
      // Release the thresholded image+moments... we need no memory leaks.. please
      cvReleaseImage(&amp;imgYellowThresh);
  
      delete moments;
  }
  // We're done using the camera. Other applications can now use it
   cvReleaseCapture(&amp;capture);
  cvReleaseCapture(&amp;capture);
  return 0;
  
  }
  </code></pre>
  
  <p>I have installed Open CV to
  <code>C:\OpenCV2.3</code></p>
  
  <p>I have added additional dependencies, additional directories, ect. 
  For the preferences for my project, they are as follows:</p>
  
  <p>Additional Dependencies:</p>
  
  <pre><code>enter code here
  opencv_core230.lib
  opencv_highgui230.lib
  opencv_legacy230.lib
  opencv_video230.lib
  opencv_ml230.lib
  opencv_core230d.lib
  opencv_highgui230d.lib
  opencv_legacy230d.lib
  opencv_video230d.lib
  opencv_ml230d.lib
  opencv_calib3d230d.lib
  </code></pre>
  
  <p>Aditional Library Directories:
  <code>C:\OpenCV2.3\build\x64\vc10\lib;C:\OpenCV2.3\build\x64\vc10\bin;C:\OpenCV2.3\build\x64\vc10\staticlib;%(AdditionalLibraryDirectories)</code></p>
  
  <p>Additional Include Directories:</p>
  
  <pre><code>C:\OpenCV2.3\build\include\opencv;C:\OpenCV2.3\build\include\opencv2;C:\OpenCV2.3\build\include
  </code></pre>
  
  <p>I also included a path to the DLL's on my path variable for windows:</p>
  
  <pre><code>;C:\OpenCV2.3\build\x64\vc10\bin;C:\OpenCV2.3\build\bin;
  </code></pre>
  
  <p>I've looked at other forums, other stack overflow questions, ect without much help.
  I have been trying to get this to work for the better part of a weekend. Any help would be much appreciated!</p>