title: Compiling a basic OpenCV program on Mac OS X 10.7
body: <p>I installed opencv from Macports and it is in 
  /opt/local/include</p>
  
  <p>I tried to compile basic OPENCV code from Terminal by giving the following commands, but it doesn't getting compiled:</p>
  
  <pre><code>g++ example.cpp -o example -I /usr/local/include/opencv/ -L /usr/local/lib/ -lopencv_highgui -lopencv_calib3d -lopencv_legacy
  g++ example.cpp -o example -I /opt/local/include/opencv/ -L /opt/local/lib/ -lopencv_highgui -lopencv_calib3d -lopencv_legacy
  </code></pre>
  
  <p><strong>Can anyone tell me the right Terminal command to compile given below opencv program for Mac OS X 10,7?</strong></p>
  
  <p>I was trying to compile the simple example given on this link:
  <a href="http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/" rel="noreferrer">http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/</a></p>
  
  <p><strong>Edit:</strong> </p>
  
  <p>Here is the code I am trying to compile:</p>
  
  <pre><code>////////////////////////////////////////////////////////////////////////
  //
  // hello-world.cpp
  //
  // This is a simple, introductory OpenCV program. The program reads an
  // image from a file, inverts it, and displays the result. 
  //
  ////////////////////////////////////////////////////////////////////////
  #include &lt;stdlib.h&gt;
  #include &lt;stdio.h&gt;
  #include &lt;math.h&gt;
  #include &lt;cv.h&gt;
  #include &lt;highgui.h&gt;
  
  
  int main(int argc, char *argv[])
  {
    IplImage* img = 0; 
    int height,width,step,channels;
    uchar *data;
    int i,j,k;
  
    if(argc&lt;2){
      printf("Usage: main &lt;image-file-name&gt;\n\7");
      exit(0);
    }
  
    // load an image  
    img=cvLoadImage(argv[1]);
    if(!img){
      printf("Could not load image file: %s\n",argv[1]);
      exit(0);
    }
  
    // get the image data
    height    = img-&gt;height;
    width     = img-&gt;width;
    step      = img-&gt;widthStep;
    channels  = img-&gt;nChannels;
    data      = (uchar *)img-&gt;imageData;
    printf("Processing a %dx%d image with %d channels\n",height,width,channels); 
  
    // create a window
    cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); 
    cvMoveWindow("mainWin", 100, 100);
  
    // invert the image
    for(i=0;i&lt;height;i++) for(j=0;j&lt;width;j++) for(k=0;k&lt;channels;k++)
      data[i*step+j*channels+k]=255-data[i*step+j*channels+k];
  
    // show the image
    cvShowImage("mainWin", img );
  
    // wait for a key
    cvWaitKey(0);
  
    // release the image
    cvReleaseImage(&amp;img );
    return 0;
  }
  </code></pre>
  
  <p><strong>And here is the output:</strong></p>
  
  <pre><code>singhg@~/Programming/opencvTest $ g++ example.c -o example 'pkg-config --cflags --libs opencv'
  i686-apple-darwin11-llvm-g++-4.2: pkg-config --cflags --libs opencv: No such file or directory
  example.c:14:16: error: cv.h: No such file or directory
  example.c:15:21: error: highgui.h: No such file or directory
  example.c: In function ‘int main(int, char**)’:
  example.c:21: error: ‘IplImage’ was not declared in this scope
  example.c:21: error: ‘img’ was not declared in this scope
  example.c:23: error: ‘uchar’ was not declared in this scope
  example.c:23: error: ‘data’ was not declared in this scope
  example.c:32: error: ‘cvLoadImage’ was not declared in this scope
  example.c:43: error: expected primary-expression before ‘)’ token
  example.c:43: error: expected `;' before ‘img’
  example.c:47: error: ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope
  example.c:47: error: ‘cvNamedWindow’ was not declared in this scope
  example.c:48: error: ‘cvMoveWindow’ was not declared in this scope
  example.c:55: error: ‘cvShowImage’ was not declared in this scope
  example.c:58: error: ‘cvWaitKey’ was not declared in this scope
  example.c:61: error: ‘cvReleaseImage’ was not declared in this scope
  </code></pre>
  
  <p>Edit[6Dec]:</p>
  
  <pre><code>singhg@~/Programming/opencvTest $ g++ example.cpp -o example `pkg-config --cflags --libs opencv`
  Package opencv was not found in the pkg-config search path.
  Perhaps you should add the directory containing `opencv.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'opencv' found
  i686-apple-darwin11-llvm-g++-4.2: example.cpp: No such file or directory
  i686-apple-darwin11-llvm-g++-4.2: no input files
  singhg@~/Programming/opencvTest $ 
  </code></pre>
  
  <hr>
  
  <p>in my <code>/opt/local/lib</code> I have:</p>
  
  <pre><code>singhg@/opt/local/lib $ ls *cv*
  libopencv_calib3d.2.3.1.dylib       libopencv_highgui.dylib
  libopencv_calib3d.2.3.dylib     libopencv_imgproc.2.3.1.dylib
  libopencv_calib3d.dylib         libopencv_imgproc.2.3.dylib
  libopencv_contrib.2.3.1.dylib       libopencv_imgproc.dylib
  libopencv_contrib.2.3.dylib     libopencv_legacy.2.3.1.dylib
  libopencv_contrib.dylib         libopencv_legacy.2.3.dylib
  libopencv_core.2.3.1.dylib      libopencv_legacy.dylib
  libopencv_core.2.3.dylib        libopencv_ml.2.3.1.dylib
  libopencv_core.dylib            libopencv_ml.2.3.dylib
  libopencv_features2d.2.3.1.dylib    libopencv_ml.dylib
  libopencv_features2d.2.3.dylib      libopencv_objdetect.2.3.1.dylib
  libopencv_features2d.dylib      libopencv_objdetect.2.3.dylib
  libopencv_flann.2.3.1.dylib     libopencv_objdetect.dylib
  libopencv_flann.2.3.dylib       libopencv_ts.2.3.1.dylib
  libopencv_flann.dylib           libopencv_ts.2.3.dylib
  libopencv_gpu.2.3.1.dylib       libopencv_ts.dylib
  libopencv_gpu.2.3.dylib         libopencv_video.2.3.1.dylib
  libopencv_gpu.dylib         libopencv_video.2.3.dylib
  libopencv_highgui.2.3.1.dylib       libopencv_video.dylib
  libopencv_highgui.2.3.dylib
  singhg@/opt/local/lib $ 
  </code></pre>
  
  <p>Now I used this command:</p>
  
  <pre><code>   singhg@~/Programming/opencvTest $ g++ hello-world.cpp -o hello-world -I /opt/local/include/opencv/ -L /opt/local/lib  -lopencv_highgui -lopencv_core
  In file included from hello-world.cpp:12:
  /opt/local/include/opencv/cv.h:63:33: error: opencv2/core/core_c.h: No such file or directory
  /opt/local/include/opencv/cv.h:64:33: error: opencv2/core/core.hpp: No such file or directory
  /opt/local/include/opencv/cv.h:65:39: error: opencv2/imgproc/imgproc_c.h: No such file or directory
  /opt/local/include/opencv/cv.h:66:39: error: opencv2/imgproc/imgproc.hpp: No such file or directory
  /opt/local/include/opencv/cv.h:67:38: error: opencv2/video/tracking.hpp: No such file or directory
  /opt/local/include/opencv/cv.h:68:45: error: opencv2/features2d/features2d.hpp: No such file or directory
  /opt/local/include/opencv/cv.h:69:35: error: opencv2/flann/flann.hpp: No such file or directory
  /opt/local/include/opencv/cv.h:70:39: error: opencv2/calib3d/calib3d.hpp: No such file or directory
  /opt/local/include/opencv/cv.h:71:43: error: opencv2/objdetect/objdetect.hpp: No such file or directory
  /opt/local/include/opencv/cv.h:72:37: error: opencv2/legacy/compat.hpp: No such file or directory
  /opt/local/include/opencv/cv.h:79:37: error: opencv2/core/internal.hpp: No such file or directory
  In file included from hello-world.cpp:13:
  /opt/local/include/opencv/highgui.h:47:39: error: opencv2/highgui/highgui_c.h: No such file or directory
  /opt/local/include/opencv/highgui.h:48:39: error: opencv2/highgui/highgui.hpp: No such file or directory
  hello-world.cpp: In function ‘int main(int, char**)’:
  hello-world.cpp:18: error: ‘IplImage’ was not declared in this scope
  hello-world.cpp:18: error: ‘img’ was not declared in this scope
  hello-world.cpp:20: error: ‘uchar’ was not declared in this scope
  hello-world.cpp:20: error: ‘data’ was not declared in this scope
  hello-world.cpp:29: error: ‘cvLoadImage’ was not declared in this scope
  hello-world.cpp:40: error: expected primary-expression before ‘)’ token
  hello-world.cpp:40: error: expected `;' before ‘img’
  hello-world.cpp:44: error: ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope
  hello-world.cpp:44: error: ‘cvNamedWindow’ was not declared in this scope
  hello-world.cpp:45: error: ‘cvMoveWindow’ was not declared in this scope
  hello-world.cpp:52: error: ‘cvShowImage’ was not declared in this scope
  hello-world.cpp:55: error: ‘cvWaitKey’ was not declared in this scope
  hello-world.cpp:58: error: ‘cvReleaseImage’ was not declared in this scope
  singhg@~/Programming/opencvTest $ 
  </code></pre>