当我尝试编译代码时,出现以下错误消息-
在功能上
'__static_initialization_and_destruction_0':
家庭/用户/main.cpp:50:未定义
参考
'PhysEng2D :: PhysEng2D(无效)'
第50行的唯一代码是-
PhysEng2D Physics;
PhysEng2D的头文件是-
#ifndef _PHYSENG2D_H_
#define _PHYSENG2D_H_
#include "primitives.h"
class PhysEng2D
{
public:
PhysEng2D::PhysEng2D();
PhysEng2D::~PhysEng2D();
bool IsBoundingBoxCollision(PS2Sprite & S1, PS2Sprite & S2);
bool IsWallCollision(PS2Sprite & S);
};
#endif
其余PhysEng2D的开头是-
#include "primitives.h"
#include "physeng2d.h"
PhysEng2D::PhysEng2D()
{
//Nothing to Initialise
}
PhysEng2D::~PhysEng2D()
{
//Nothing to clean up
}
(我没有完整包含这些方法,因为我认为它们不相关)
抱歉,我知道这可能是我犯的一个非常愚蠢的小错误。
最佳答案
您需要编译每个cpp文件,然后链接它们。
g++ -c -Wall main.cpp
g++ -c -Wall physeng2d.cpp
g++ -o myapp main.o physeng2d.o
您还应该从.h中的类定义中删除
PhysEng2D::
前缀关于c++ - C++中未定义的引用编译器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5938501/