我有:frw_trafic.h:
#define PI 3.14159265
namespace FRW
{
float angleToProperRadians(float angle);
class Car
{
public:
...
void transform(int time = 1);
...
private:
...
float velocDir; // angle in degrees, same as Sector angle
float wheelDir; // hence delta angle between car velocity direction and where wheels drive direction
float centerPosX;
float centerPosY; //these two are for car position
... }; }
这是一个声明了一个类和一个方法的命名空间。frw_traffic.cpp
#ifndef FRWTRAFFIC
#define FRWTRAFFIC
#include "frw_traffic.h"
#endif
#include <cmath>
using namespace FRW;
float angleToProperRadians(float angle)
{
for (; angle < -360 || angle > 360;)
{
if (angle < -360)
{
angle = angle + 360;
continue;
}
if (angle > 360)
{
angle = angle - 360;
}
}
if (angle < 0)
{
angle = 360 - angle;
}
return angle * PI / 180;
}
void Car::transform(int time) {
if (wheelDir == 0)
{
centerPosX = centerPosX + static_cast<float>(time) * speed * cos(FRW::angleToProperRadians(velocDir)) ;
centerPosY = centerPosY + static_cast<float>(time) * speed * sin(FRW::angleToProperRadians(velocDir)) ;
} }
方法 angleToProperRadians() 在 .h 中声明,在 .cpp 中定义,并使用在 .h 中定义的宏 PI 进行计算。然后,我使用 Car::transform() 方法计算对象在直线轨迹中的位置。它还在 .h 文件中声明为 Car 类的一部分,并在 .cpp 文件中定义。
此代码无法编译,给出“未解析的外部符号”。错误。AFA 这是一个链接错误,我相信宏或包含的东西搞砸了。我一直在拼命地尝试在 Stack Overflow 上使用有关此错误的其他问题,但是大多数人在使用外部库时遇到此错误。
请有人提供有关检查两次以查看此代码的真正问题的建议。
错误 LNK2019:在函数“public: void __thiscall FRW::Car::transform(int)”(?transform @汽车@FRW@@QAEXH@Z)
谢谢你。