我正在尝试运行一个包含openCV库且创建了一个简单Mat的C++文件。但是,当我使用g++编译文件时,会返回一系列错误。
到目前为止,我已经尝试删除Mat定义,并仅包含openCV文件,这样可以正常工作!由于我刚接触命令行,所以我不确定是否是我使用g++的方式有问题。然而,我在Xcode中已经很多地方使用过openCV(尽管在Xcode中,没有必要在命令行中工作,因为一切都会在运行时整齐地构建)。
此外,这是我第一次发布到Stack Overflow,所以我可能已经格式化错误。
这是我想要编译的main.cpp文件。如我之前所提到的,如果我删除“Mat test;”这行代码,它就可以编译成功并按预期写入控制台。
这是我正在使用的g++命令:
非常感谢任何帮助。我还选择关闭了g++的冗长标志,因为它返回了大量代码行,我不确定人们对50多行代码的看法如何。非常感谢!
到目前为止,我已经尝试删除Mat定义,并仅包含openCV文件,这样可以正常工作!由于我刚接触命令行,所以我不确定是否是我使用g++的方式有问题。然而,我在Xcode中已经很多地方使用过openCV(尽管在Xcode中,没有必要在命令行中工作,因为一切都会在运行时整齐地构建)。
此外,这是我第一次发布到Stack Overflow,所以我可能已经格式化错误。
这是我想要编译的main.cpp文件。如我之前所提到的,如果我删除“Mat test;”这行代码,它就可以编译成功并按预期写入控制台。
#include <iostream>
#include <string>
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/videoio.hpp>
using namespace std;
using namespace cv;
int main() {
Mat test;
cout << "Mat Defined!" << endl;
return(0);
}
这是我正在使用的g++命令:
g++ -o main.out main.cpp
当我尝试运行它时,会出现以下错误:
/usr/bin/ld: /tmp/ccbbhoNd.o: in function `cv::Mat::~Mat()':
main.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x3c): undefined reference to `cv::fastFree(void*)'
/usr/bin/ld: /tmp/ccbbhoNd.o: in function `cv::Mat::release()':
main.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x68): undefined reference to `cv::Mat::deallocate()'
collect2: error: ld returned 1 exit status
非常感谢任何帮助。我还选择关闭了g++的冗长标志,因为它返回了大量代码行,我不确定人们对50多行代码的看法如何。非常感谢!
g++
命令的末尾添加类似于-lopencv
的内容。 - Cris Luengo