对 Scalar ::Scalar() 的未定义引用



我想从类调用函数,但它显示错误。 我的测试.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)'

标量.hxx

#ifndef __SCALAR_HXX__
#define __SCALAR_HXX__
#include <stdint.h>
class Scalar
{
public:
Scalar(void);
char SetBank(char bank_no);
};
#endif

我包含了正确的文件名。

我认为这本身并不是编译器错误。编译器找到定义很好,但链接器找不到包含Scalar编译代码的目标文件,因此抱怨。

我还评论说,请求更多数据来帮助您解决此问题。

Scalar.hxx 为ScalarSetBank方法提供了声明,但我看不到任何定义。是否有Scalar.cxx包含如下代码的文件?

Scalar::Scalar() {
// ctor's body
}
char Scalar::SetBank(char bank_no) {
// method's body
}

如果有,那么它会被编译(即,包含在你的项目/制作文件中(?

最新更新