我在C ++ OpenCV中编写了一个软件,其结构如此:
问题在于我得到了这两个错误
未定义引用" myTestfps1(int,int)"
未定义引用" myTestfps2(int,int)"
这两种方法都是用 testfps.cpp 编写的,并在 testfps.hpp 中声明。
在 main.cpp 中声明了所有必要的#include <name>
,之后有#include "testfps.hpp"
#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;
}
...
}
#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){
...
}
#ifndef TESTFPS_HPP
#define TESTFPS_HPP
int myTestfps1(int a, int b);
int myTestfps2(int a, int b);
#endif
这有什么问题?
答案 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)