Xcode 中的 OpenCV C++ 错误
Posted
技术标签:
【中文标题】Xcode 中的 OpenCV C++ 错误【英文标题】:OpenCV C++ error in Xcode 【发布时间】:2009-12-03 22:24:10 【问题描述】:我已经按照here 的描述使用cmake
构建系统构建了OpenCV 库,并将头文件、“.a”和“.dylib”文件添加到我的终端c++ 项目中。但是,当我运行下面的代码(从http://iphone-cocoa-objectivec.blogspot.com/2009/01/using-opencv-for-mac-os-in-xcode.html 获取)时,它给了我下面的错误。有没有人有任何建议?任何帮助将不胜感激。
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cv.h>
#include <highgui.h>
int main()
//get the image from the directed path
IplImage* img = cvLoadImage("/Users/somedir/Programming/TestProj/fruits.jpg", 1);
//create a window to display the image
cvNamedWindow("picture", 1);
//show the image in the window
cvShowImage("picture", img);
//wait for the user to hit a key
cvWaitKey(0);
//delete the image and window
cvReleaseImage(&img);
cvDestroyWindow("picture");
//return
return 0;
错误
Undefined symbols:
"_cvLoadImage", referenced from:
_main in main.o
"_cvNamedWindow", referenced from:
_main in main.o
"_cvReleaseImage", referenced from:
_main in main.o
"_cvShowImage", referenced from:
_main in main.o
"_cvDestroyWindow", referenced from:
_main in main.o
"_cvWaitKey", referenced from:
_main in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
【问题讨论】:
【参考方案1】:避免在 OpenCV 2.0 中使用 Xcode。如果使用 OpenCV,请使用 Windows 并使用 OpenCV 1.1。它会省去很多头痛。当 2.0/Mac 有更好的文档时,然后过渡到 Mac 平台/2.0 版本。这本书(O'Reilly)很好 - 涵盖 v1.1。 2.0 的下一部分应该很快就会发布。 1.
【讨论】:
【参考方案2】:首先,不要使用 CMake 构建库,最好从 mac 上的 macports 获取它们, 您可以使用单行轻松更新到较新版本...
另外,如果您将cv::Mat
接口与#include <opencv2/core/core.hpp>
和#include <opencv2/highgui/highgui.hpp>
一起使用,情况会更好... ;) 在名称末尾包含带有版本的dylib 库。 (我认为无版本的 dylib 用于旧接口#include)
对于初学者:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
//get the image from the directed path
Mat img = loadImage("/Users/somedir/Programming/TestProj/fruits.jpg");
//show the image in the window
imshow("picture", img);
//wait for the user to hit a key
waitKey(0);
//delete the image and window (automatic)
return 0;
【讨论】:
以上是关于Xcode 中的 OpenCV C++ 错误的主要内容,如果未能解决你的问题,请参考以下文章