我一直在寻找,但找不到明确的疑问。
我正在尝试在 C++ 中定义我自己的类,我的类使用来自 opencv 的库。
我创建了一个 file.h 文件,我只是在其中声明了函数及其保护。
我创建了一个 file.cpp 文件,我在其中解释了函数的外观。在这个程序中,我使用了在普通 opencv 程序中使用的所有包含。(我认为它是正确的)+ 包含 file.h。
通常我编译我的opencv程序,如:
g++ -o program.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv`
现在我尝试以相同的方式编译我的 file.cpp,以便在 oder 主文件中使用该类,但我得到一个错误。
下一步,一旦我有了编译的类,将是:
g++ -o programMain.cpp compiledClass.o `pkg-config --cflags opencv` `pkg-config --libs opencv`
任何帮助/建议都会很好,因为这是我第一次管理这么大的程序。
#ifndef _NAMES_H
#define _NAMES_H
class segmentator {
public:
void search(Mat img,
vector<std::vector<cv::Point> >&contours,
vector<int>&similarity);
void similar(vector<std::vector<cv::Point> >&contours,
vector<std::vector<cv::Point> >&contours2,
vector<int>&similarity);
vector<Mat*> separate(Mat img,
Mat img2,
vector<std::vector<cv::Point> >&contours,
vector<std::vector<cv::Point> >& contours2,
vector<int> idx);
};
#endif
这是我的文件segmentator.h。
在 segmentator.c 我有:
#include <stdio.h>
#include <stdlib.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <sstream>
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include "segmentator.h"
void segmentator::search(/*parameters*/){/*CODE*/}
void segmentator::similar(/*parameters*/){/*CODE*/}
vector<Mat*> separate(/*parameters*/){/*CODE*/}
然后我像这样编译
g++ -o segmentator.cpp `pkg-config --cflags opencv`
并且它不识别 opencv 库的扩展。
我用出现的新问题移动了这个问题:无法编译。头文件。封闭自己的对象定义