我正在从头开始开发一个操作内核。我在Linux上设置了开发环境。在使用汇编语言完成所有低级编程之后,现在我正在使用C ++。我已经在不同的模块中管理了这个任务。 我有一个问题。我将阐述我的问题的一般形式。 我在同一目录中创建了三个文件。
1) main.cpp
2) myclass.h
3) myclass.cpp
// main.cpp
#include<iostream>
#include"myclass.h"
using namespace std;
int main()
{
myclass a;
return 0;
}
//myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H
class myclass
{
public:
myclass();
};
#endif
// myclass.cpp
#include<iostream>
#include"myclass.h"
using namespace std;
myclass :: myclass()
{
cout<<"Constructer";
}
当我编译 main.cpp 时,它会显示:
/tmp/ccm50K0J.o:在函数
main': main.cpp:(.text+0x10): undefined reference to
中myclass :: myclass()' collect2:错误:ld返回1退出状态
但是当我将函数定义放在头文件中时,它可以工作。 在此先感谢..............