我想从类中调用函数,但它显示了错误。我的test.cxx文件是
#include<iostream>
#include"Scalar.hxx"
using namespace std;
int main()
{
Scalar Text;
char a;
a=Text.SetBank(1);
cout<<("%x",a);
return 0;
}它会显示错误
undefined reference to `Scalar::Scalar()'
undefined reference to `Scalar::SetBank(char)'Scalar.hxx
#ifndef __SCALAR_HXX__
#define __SCALAR_HXX__
#include <stdint.h>
class Scalar
{
public:
Scalar(void);
char SetBank(char bank_no);
};
#endif我已经包含了正确的文件名。
发布于 2020-02-13 14:59:04
我不认为这本身就是一个编译器错误。编译器可以很好地找到定义,但是您的链接器找不到包含Scalar编译代码的目标文件,因此出现了错误。
我还评论了请求更多的数据来帮助你解决这个问题。
发布于 2020-02-13 15:10:32
Scalar.hxx为Scalar和SetBank方法提供了声明,但我没有看到定义。有没有包含如下代码的Scalar.cxx文件?
Scalar::Scalar() {
// ctor's body
}
char Scalar::SetBank(char bank_no) {
// method's body
}如果有,那么它会被编译(即,包含在你的项目/makefile中)吗?
https://stackoverflow.com/questions/60201992
复制相似问题