OpenCV未定义对库中我自己的方法的引用

时间:2015-01-25 12:12:28

标签: c++ c oop opencv object

我在C ++ OpenCV中编写了一个软件,其结构如此:

  • 的main.cpp
  • testfps.cpp
  • testfps.hpp

问题在于我得到了这两个错误

  

未定义引用" myTestfps1(int,int)"
  未定义引用" myTestfps2(int,int)"

这两种方法都是用 testfps.cpp 编写的,并在 testfps.hpp 中声明。

main.cpp 中声明了所有必要的#include <name>,之后有#include "testfps.hpp"


的main.cpp

    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>

    #include "testfps.hpp"

int main(int argc, char** argv[]){
    ....
    switch(c){
    case 1: myTestfps1(a,b);break;
    case 2: myTestfps2(a,b);break;
    }
...
}

testfps.cpp

#include <opencv2/opencv.hpp>
#include <time.h>
#include <stdio.h>

#include "testfps.hpp"

int myTestfps1(int a, int b){
...
}
int myTestfps2(int a, int b){
...
}

testfps.hpp

#ifndef TESTFPS_HPP
#define TESTFPS_HPP

int myTestfps1(int a, int b);
int myTestfps2(int a, int b);

#endif

这有什么问题?

1 个答案:

答案 0 :(得分:4)

Samuel指出,您可能遇到的主要问题是您的编辑中没有包含testfps.cpp。

如果您使用g ++在Linux上运行,请尝试以下操作:

g++ -o testfps main.cpp testfps.cpp

在任何情况下,由于您正在使用C ++,我建议您不要使用诸如stdio.h和stdlib.h之类的C头。而是使用cstdio和cstdlib:

#include <cstdlib>
#include <cstdio>

最后,你对main的定义是错误的,argv不是指针 3

int main(int argc, char* argv[])

或:

int main(int argc, char** argv)