如图
我在hpp里已经定义了rodrigues为什么在cpp中还是找不到啊
有include hpp的
回答部分参考、引用ChatGpt以便为您提供更准确的答案:
根据您提供的图片,问题是关于在hpp文件中定义了rodrigues,但在cpp文件中找不到的原因。这可能有几个可能的原因,我将尽量细化解释:
#include "hpp文件名"
的形式来引用hpp文件,确保文件路径和文件名正确无误。请检查上述几个可能的原因,并逐一排除,看是否能够解决问题。如果问题仍然存在,请提供更多的上下文信息,以便我们能够更准确地帮助您。
可能原因:
1、函数未声明:在hpp文件中,需要先声明rodrigues函数,然后在cpp文件中定义该函数。如果hpp文件中没有声明rodrigues函数,则cpp文件中也无法找到该函数。
2、头文件未包含:在cpp文件中,需要包含hpp文件。如果cpp文件中没有包含hpp文件,则无法找到rodrigues函数。
例,下面是一个小小实例,hpp文件中声明了Rodrigues函数,cpp文件中定义了该函数。在main.cpp文件中,包含了hpp文件,因此可以找到Rodrigues函数。代码如下:
hpp文件(rodrigues.hpp):
#ifndef RODRIGUES_HPP
#define RODRIGUES_HPP
void Rodrigues(double, double, double, double*);
#endif // RODRIGUES_HPP
cpp文件(rodrigues.cpp):
#include "rodrigues.hpp"
#include <iostream>
void Rodrigues(double a, double b, double c, double* d) {
*d = a + b + c;
}
main.cpp:
#include "rodrigues.hpp"
#include <iostream>
int main() {
double x;
Rodrigues(1.0, 2.0, 3.0, &x);
std::cout << "Result: " << x << std::endl;
return 0;
}
在hpp里已经定义了rodrigues,但是在cpp中没有包含,所以找不到,要正常使用,需要在cpp或者h中包含对rasterize.hpp的引用。