我试图用OpenCV写一段简单的代码,但是我不能成功地编译它。代码如下:
#include <iostream>
#include <stdio.h>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("insignia.jpg", -1);
return 0;
}
它不会起作用的。下面是我收到的错误消息。
/tmp/ccEMHPHa.o: In function `main':
main.cpp:(.text+0x46): undefined reference to `cv::imread(cv::String const&, int)'
/tmp/ccEMHPHa.o: In function `cv::String::String(char const*)':
main.cpp:(.text._ZN2cv6StringC2EPKc[_ZN2cv6StringC5EPKc]+0x58): undefined reference to `cv::String::allocate(unsigned long)'
/tmp/ccEMHPHa.o: In function `cv::String::~String()':
main.cpp:(.text._ZN2cv6StringD2Ev[_ZN2cv6StringD5Ev]+0x14): undefined reference to `cv::String::deallocate()'
/tmp/ccEMHPHa.o: In function `cv::Mat::~Mat()':
main.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x39): undefined reference to `cv::fastFree(void*)'
/tmp/ccEMHPHa.o: In function `cv::Mat::release()':
main.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x4b): undefined reference to `cv::Mat::deallocate()'
collect2: error: ld returned 1 exit status
我试着在网上搜索这个问题,但大多数答案都没有解决我的问题。有人能帮帮我吗?
发布于 2018-02-08 22:11:26
这听起来像是链接的问题。我可以用g++编译你的代码,没有问题:
g++ Test.cpp -L/path/to/my/openCV/lib -lopencv_core -lopencv_imgcodecs -o Test
如果要使用Open CV的其他功能,可能必须链接到其他Open CV库。
https://stackoverflow.com/questions/48687259
复制相似问题