我看了未定義引用錯誤多個其他職位,但我看不到我的代碼的任何錯誤。有什麼我不抓住?我在ubuntu命令行中用g ++編譯。我收到「未定義的引用」的錯誤,我不明白爲什麼(C++ OO)
這裏是我的代碼,並從終端的錯誤:
Main.cpp的:
#include <iostream>
#include "Object.h"
using namespace std;
int main(){
Object* o = new Object(3,6,9);
o->printVolume();
delete o;
return 0;
}
Object.h:
#ifndef OBJECT_H_
#define OBJECT_H_
class Object
{
public:
Object(double xSize, double ySize, double zSize);
~Object();
void printVolume();
private:
double x,y,z;
};
#endif
Object.cpp:
#include <iostream>
#include "Object.h"
using namespace std;
Object::Object(double xSize, double ySize, double zSize){
x = xSize;
y = ySize;
z = zSize;
}
Object::~Object(){
cout << "Object destroyed." << endl;
}
void Object::printVolume(){
cout << x * y * z << endl;
}
錯誤:
/tmp/ccUeuPTn.o:在函數main': Main.cpp:(.text+0x47): undefined reference to
Object :: Object(double,double,double)' Main.cpp :(.text + 0x57):未定義的引用Object::printVolume()' Main.cpp:(.text+0x68): undefined reference to
Object ::〜Object()' collect2:錯誤:LD返回1退出狀態
有沒有辦法,我失去了一些東西?
你怎麼編? – tkausl
g ++在終端 –
我運行: '〜/ Desktop/C++ Projects/Forge/src $ g ++ -I ../ include Main.cpp -o Main.o' –