gpt4 book ai didi

c++ - OpenCV undefined reference 库中我自己的方法

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:07 26 4
gpt4 key购买 nike

我用 C++ OpenCV 写了一个软件,它是这样结构化的:

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

问题是我得到了这两个错误

undefined reference to "myTestfps1(int, int)"
undefined reference to "myTestfps2(int, int)"

这两个方法写在testfps.cpp中,声明在testfps.hpp中。

ma​​in.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

这是怎么回事?

最佳答案

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

如果你在 linux 上运行 g++,试试这个:

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

无论如何,由于您正在使用 C++,我建议您不要使用 C 头文件,例如 stdio.h 和 stdlib.h。而是使用 cstdio 和 cstdlib:

#include <cstdlib>
#include <cstdio>

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

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

或:

int main(int argc, char** argv)

关于c++ - OpenCV undefined reference 库中我自己的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28136233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com