在自己写的类成员函数中电泳solvepnp显示未定义

我在自己写的类的成员函数中调用solvePnP函数显示未定义是为什么啊,头文件也已经加上了。
下面是程序:

#pragma once
#include 

using namespace cv;
using namespace std;

class self_SolvePnp {
public:
    self_SolvePnp();
    ~self_SolvePnp();

    bool Initialize();

    void SetData(vector& Generate2DPoints, vector& Generate3DPoints, Mat& cameraMtrixl, Mat& distCoeffsl);

    void solve();

    Mat rvec;
    Mat tvec;

private:
    Mat cameraMtrixl_;
    Mat distCoeffsl_;

    vector Generate2DPoints_;
    vector Generate3DPoints_;
};

#include "solvepnp.h"
#include 
#include 
#include 
#include 

using namespace cv;
using namespace std;

self_SolvePnp::self_SolvePnp() {}
self_SolvePnp::~self_SolvePnp() {}

void self_SolvePnp::SetData(vector& Generate2DPoints, vector& Generate3DPoints, Mat& cameraMtrixl, Mat& distCoeffsl)
{
    Generate2DPoints_ = Generate2DPoints;
    Generate3DPoints_ = Generate3DPoints;

    cameraMtrixl_ = cameraMtrixl;
    distCoeffsl_ = distCoeffsl;
}

void self_SolvePnp::solve()
{
        // 现在就是报错SolvePnP未定义
    SolvePnP(Generate3DPoints_, Generate2DPoints_, cameraMtrixl_, distCoeffsl_, rvec, tvec, false, SOLVEPNP_P3P);
}

SolvePnP在哪个头文件里申明的?