【发布时间】:2015-09-17 20:37:22
【问题描述】:
对 OpenCV 不太熟悉,我在 Java OpenCV 中做了一些东西,但是受限于这个库,我已经很难进入 C/C++!
我已经成功构建并运行了 C OpenCV 项目,但是看到大多数教程在 C++ 版本上运行,我正在尝试制作一个简单的“HelloCV”:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("c:/lenna.png", CV_LOAD_IMAGE_COLOR);
namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
imshow("MyWindow", img);
waitKey(0);
return 0;
}
我总是收到以下错误:
../src/mainCPP.cpp:12: undefined reference to `cv::imread(std::string const&, int)'
../src/mainCPP.cpp:14: undefined reference to `cv::namedWindow(std::string const&, int)'
../src/mainCPP.cpp:15: undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
../src/mainCPP.cpp:15: undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
../src/mainCPP.cpp:17: undefined reference to `cv::waitKey(int)'
src\maincpp.o: In function `ZN2cv3MatD1Ev':
C:/OpenCV_2.4.9/opencv/build/include/opencv2/core/mat.hpp:278: undefined reference to `cv::fastFree(void*)'
src\maincpp.o: In function `ZN2cv3Mat7releaseEv':
C:/OpenCV_2.4.9/opencv/build/include/opencv2/core/mat.hpp:367: undefined reference to `cv::Mat::deallocate()'
collect2.exe: error: ld returned 1 exit status
我已经完成了大约 4-5 次安装教程,但我只成功地让我的项目崩溃了!
我的“工作”设置:
- C/C++ 构建 -> GCC C++ 编译器 -> 包含 -> 包含路径 (-I):我的包含文件夹的路径(“C:\OpenCV_2.4.9\opencv\build\include”)
- C/C++ 构建 -> GCC C++ 链接器 -> 库 -> 库搜索路径 (-L) -> "C:\OpenCV_2.4.9\opencv\build\x86\vc11\lib", 我知道我已经把路径放到 x86 而不是 x64 由于 lib 错误,例如:“不兼容的系统架构”......!
- C/C++ Build -> GCC C++ Linker -> Libraries -> Libraries (-l):opencv_core249、opencv_imgproc249 和 highgui249(我测试过包括所有库,但它是相同的)
我已经添加了环境变量:C:\OpenCV_2.4.9\opencv\build\x86\vc11\bin(不是只有M$ Visual Studio吗?!)
【问题讨论】:
-
我正在探索以下方式:我正在使用 ../build/x86/vc11/bin 或 vc10 或 vc11,它们都是用于 Visual C++ 编译器的...... OpenCV 已经停止为 minGW 构建二进制文件,所以我必须编译它们......