HanXu
HanXu

Reputation: 5597

Why can't I compile this command-line OpenCV Mac application?

Following is my step:

1)create a command line tool project "OpenCV"

2)add files to the project which are in /usr/local/lib with suffix 2.4.2, such as "libopencv_calib3d.2.4.2.dylib"

3)add "/usr/local/include" to project's Header Search Path

4)type this program:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cvaux.hpp>

int main(int argc, char** argv)
{
    IplImage * pInpImg = 0;

    // Load an image from file - change this based on your image name
    pInpImg = cvLoadImage("my_image.jpg", CV_LOAD_IMAGE_UNCHANGED);
    if(!pInpImg)
    {
        fprintf(stderr, "failed to load input image\n");
        return -1;
    }

    // Write the image to a file with a different name,
    // using a different image format -- .png instead of .jpg
    if( !cvSaveImage("my_image_copy.png", pInpImg) )
    {
        fprintf(stderr, "failed to write image file\n");
    }

    // Remember to free image memory after using it!
    cvReleaseImage(&pInpImg);

    return 0;
}

However, I get error :

ld: library not found for -lopencv_calib3d.2.4.2
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Where is the problem?

I'm using mountain lion and Xcode 4.4

Upvotes: 3

Views: 5328

Answers (1)

SSteve
SSteve

Reputation: 10698

You don't need to add the opencv libs to your project but you do need to link to the libraries and set the library search path. I was able to compile and run your program with these settings:

Search paths: Search paths

Link to libraries: Linked libraries

Upvotes: 5

Related Questions